字符集合
1、题目要求
输入一个字符串,求出该字符串包含的字符集合,例如输入 “abcqweracb”,输出的结果应该是 abcqwer
要求按字符串原有的字符顺序
2、程序分析
对于集合,你很容易想到用set 这种数据结构,但是,这是一道笔试题,显然不是考察你对集合这种数据结构的使用能力
题目要求中有两个要点,一个是求字符的集合,一个是按照字符串原有的字符顺序输出这个集合
对于求集合,我们可以借助数组,一共26个字母,可以创建一个长度为26的数组,在python里,我们用list
遍历字符串,对单个字符使用ord()这个内置函数,这个函数返回字符的ASCII数值,用这个返回的数值作为下角标,操作list中这个下角标所对应的元素值,赋值为1,表示这个字符出现过,这样,只需要遍历一次字符串,就知道哪些字符出现过
至于按照原有的字符顺序输出,可以在遍历字符串的过程中顺便进行,新创建一个list,如果字符没有出现过,则放入到这个list中,如果判断已经出现过,则不放入,最后输出这个装集合的list
3、示例代码
#coding=utf-8
def get_char_set(string):
lst = [0 for i in range(26)]
char_lst = []
for item in string:
index = ord(item) -97
if lst[index] == 0:
lst[index] = 1
char_lst.append(item)
return ''.join(char_lst)
print get_char_set("abcqweracb")