题目描述:
对输入字符串检查,输出合法字符串(去重),非法字符串分类(不去重)
对去重合法字符串循环左移10次
再按ascii码顺序 排序输出
python实现:
#coding=utf-8
'''
题目描述:
对输入字符串检查,输出合法字符串(去重),非法字符串分类(不去重)
对去重合法字符串循环左移10次
再按ascii码顺序 排序输出
'''
import sys
legal_list_all=[]
legal_list=[]
illegal_list=[]
legal_leftshift_list=[]
legal_sort_list=[]
#合法 非法字符串分类
for line in sys.stdin:
line=line.strip()
if(line!=""):
illegal_Flag=False
line_list=list(line)
for ele in line_list:
#判断是否为合法字符
if(((48<=ord(ele)<=57) or (65<=ord(ele)<=90) or (97<=ord(ele)<=122))!=1):
illegal_Flag=True
break
if(illegal_Flag):
illegal_list.append(line)
continue
else:
legal_list_all.append(line)
else:
break
#合法字符串去重 并保持原有顺序
legal_list=list(set(legal_list_all))
legal_list.sort(key=legal_list_all.index)
print(" ".join(legal_list))
print(" ".join(illegal_list))
#字符串左移
def leftShift(s):
s_index=s[0]
s_rest=s[1:]
s_new=s_rest+s_index
return s_new
#合法字符串 左移10位
for ele in legal_list:
for i in range(10):
ele=leftShift(ele)
legal_leftshift_list.append(ele)
print(" ".join(legal_leftshift_list))
#将去重、左移后的合法字符 按ascii码进行排序
legal_sort_list=sorted(legal_leftshift_list)
print(" ".join(legal_sort_list))
1、使用set对列表去重,并保持列表原来顺序
参考:https://blog.csdn.net/shuifa2008/article/details/38085955