编程题:检查字符串是否合法 去重、左移、按ascii码排序 python实现

题目描述:
对输入字符串检查,输出合法字符串(去重),非法字符串分类(不去重)
对去重合法字符串循环左移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

你可能感兴趣的:(python)