[编程题]ZOJ
  • 热度指数:5702 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。

输入描述:
每组用例占一行,包含ZOJ三个字符。
1<=length<=100。


输出描述:
对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
示例1

输入

ZZOOOJJJ

输出

ZOJZOJOJ
from itertools import zip_longest

def select_sortedZOJ(nums):
    list_Z = []
    list_O = []
    list_J = []
    for i,x in enumerate(nums):
        if x == 'Z':
            list_Z.append(x)
        elif x == 'O':
            list_O.append(x)
        else:
            list_J.append(x)
    s = list(zip_longest(list_Z,list_O,list_J))
    return s
nums = input()
#print(select_sortedZOJ(nums))
sm = select_sortedZOJ(nums)
st = ''.join(char for trio in sm for char in trio if char is not None)
print(st)


编辑于 2024-03-24 16:12:26 回复(0)