def qc_string(s):
filelist = s
filelist2 = []
for a_string in filelist:
temp=a_string[::-1]#将文本翻转
char_list = list(a_string) #把字符串转化列表自动按单个字符分词了
#通过对比原始文本与当前文本,记录要删除的索引,将重复文本删除
list1 = []#原始文本
list1.append(char_list[0])
list2 = [\'\']#比较文本
del1 = []#记录要删除的索引
i = 0
while (i<len(char_list)):
i = i+1
#若i为最后一个位置时,list1 与list2文本相同,需要删除的文本索引为range(i-m,i),其中m为list2的总字符数
if i == len(char_list):
if list1 == list2:
m = len(list2)
for x in range(i-m,i):
del1.append(x)
else:
#(1.1)若词汇与list1第一个词汇相同,list2为空,将词加入list2中
if char_list == list1[0] and list2==[\'\']:
list2[0]=char_list
#(1.2)若词汇与list1第一个词汇相同,list2不为空,分两种情况:
elif char_list == list1[0] and list2 != [\'\']:
#(1.2.1)若list1=list2,记录要删除的索引位置,并重置list2,将新的词汇复制给list2
if list1 == list2:
m = len(list2)
for x in range(i-m,i):
del1.append(x)
list2 = [\'\']
list2[0]=char_list
#(1.2.2)若list1不等于list2,令list1=list2,并重置list2,将新的词汇复制给list2
else:
list1 = list2
list2 = [\'\']
list2[0]=char_list
#(2.1)若词汇和list1第一个词汇不同,list2为空,将词加入list1'
elif char_list != list1[0] and list2==[\'\']:
list1.append(char_list)
#(2.2)若词汇和list1第一个词汇不同,list2不为空,分两种情况:
elif char_list != list1[0] and list2 !=[\'\']:
#(2.2.1)如果list1等于list2且list2的字符长度大于2,则记录要删除的索引位置,并重置list1,list2
if list1 == list2 and len(list2)>=2:
m = len(list2)
for x in range(i-m,i):
del1.append(x)
list1= [\'\']
list1[0]=char_list
list2 = [\'\']
#(2.2.2)如果list1不等于list2,将新的词汇加入到list2中
else:
list2.append(char_list)
a = sorted(del1) #将位置索引进行排序
t = len(a)-1
while(t>=0):
del char_list[a[t]]
t = t-1
str1 = \'\'.join(char_list)
str2 = str1.strip()
#str2=str2[::-1]
filelist2.append(str2)
return filelist2