给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....
这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT
的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
样例:">样例:">输入样例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
样例:"输出样例:
GPLTGPLTGLTGLGLL
# 方法一·:
a = input('')
list =['G', 'P', 'L', 'T']
dict = {}
for i in list:
dict[i] = a.upper().count(i)
myStr = ""
while (sum(dict.values()) != 0):
for i in list:
if (dict[i]):
myStr += i
dict[i] = dict[i] - 1;
print(myStr)
# 方法二:
def sort_list(arr, outPutArr):
if not arr:
return outPutArr
for i in exlist:
if i in arr:
arr.remove(i)
outPutArr.append(i)
return sort_list(arr, outPutArr)
exlist = ["G", "P", "L", "T"]
inStr = input().upper()
mylist = re.findall('[GPLT]', inStr)
outPutArr = []
result = sort_list(mylist, outPutArr)
print(''.join(result))
# 方法三:
# 定义筛选字符串
exstr = "GPLT"
def sortWithGen(arr):
# 当列表 arr 非空时,进行循环
while arr:
for i in exstr:
if i in arr:
arr.remove(i)
yield i
inputStr = input().upper()
# 通过列表推导式从 inputStr 中筛选出所有的 G/P/L/T 字符
mylist = [char for char in inputStr if char in exstr]
result = sortWithGen(mylist)
print(f"{''.join(result)}")
版权声明:本文为weixin_41121249原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。