不错的选择
思路:
定义空串[],对原字符串进行遍历,一个个追加到空串lst中,如果重复则不添加,
返回新列表,将其转换为 字符串
def func(arg):
lst = []
for element in arg:
if not element in lst:
lst.append(element)
else:
continue
Nst = ''.join(lst)
return Nst
不完美:不能保留原字符串的排列顺序
思路:
将字符创排序,然后遍历整个序列,对相邻俩个值比较,如果不相等,
则将第一个元素等添加到一个空列表lst中,如果相等,则continue,
最后将列表lst转换中字符串Nstr
def func_1(arg):
lst = []
Mlist = sorted(arg)
lth = len(Mlist)
for i in range(lth):
if i < lth-1:
if Mlist[i] != Mlist[i+1]:
lst.append(Mlist[i])
else:
continue
else:
lst.append(Mlist[i])
Nst_1 = ''.join(lst)
return Nst_1
常规
思路:
定义3个空列表A,B,C; A放入唯一元素,B放入重复元素,L放入B中重复元素的唯一值, 将A,C合并得到最终列表,再转换为string
def func_2(arg):
lst_1 = []
lst_2 = []
L = []
for i in arg:
if arg.count(i) > 1:
lst_2.append(i)
else:
lst_1.append(i)
for e in lst_2:
if e not in L:
L.append(e)
Nlst = lst_1 + L
Ns = ''.join(Nlst)
return Ns
这个也不错
思路:
根据传入的字符串长度,循环读入第i个元素比对i+1之后的所有元素,如果匹配到
则丢弃,如果没有匹配到值则丢入一个空列表。
def func_3(arg):
lst_2 = list(arg)
L = []
lg = len(arg)
for i in range(lg):
if not lst_2[i] in lst_2[i+1:]:
L.append(lst_2[i])
else:
continue
return ''.join(L)
这个方法很棒
思路:
通过set(集合)去掉重复元素,然后再转换为字符串
def func_4(arg):
lst = list(set(arg))
Ns = ''.join(lst)
return Ns