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

该博客探讨了一道编程题,涉及检查字符串合法性、去重、左移及按ASCII码排序。针对输入字符串,文章提供了一种Python解决方案,包括使用set保持原顺序去重,对合法字符串进行10次左移操作,最后按ASCII码排序输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值