Python:降低复杂性的建议

时间:2018-04-18 21:08:23

标签: python algorithm function loops

任务:给定长度为N且从0到N-1索引的字符串S,将其偶数索引字符和奇数索引字符打印为单个字符串上的2个空格分隔字符串线。

输入格式:第一行包含一个整数T(测试用例数)。 T后续行的每一行i包含一个字符串S,。

约束:范围(1,11)中的T,范围(2,10001)中字符串S的len。

T = int(input().strip())
if T in range(1,11):
    for i in range(T):
        S = str(input().strip())
        arr= []
        arr +=S
        #print(arr[1])
        eve = []
        odd = []
        if len(arr) in range(2,10001):
            for n in range(0,len(arr)):
                if n%2 ==0:
                    eve.append(arr[n])
                else:
                    odd.append(arr[n])
        eve1 = ''.join(eve)
        odd1 = ''.join(odd)
        print(eve1,odd1)

1 个答案:

答案 0 :(得分:7)

您可以在字符串

上使用advanced slicing来简化代码
s = input().strip()
print(s[::2], s[1::2])

s[i:j:k]

i是起始索引,如果省略,它只使用0

j是结束索引,如果省略,它只使用len(s)

k是步长值,因此它将按顺序迭代序列。

因此,对于偶数索引字符,我们从0索引开始,逐步浏览每个其他字符。对于奇数索引字符,我们只需从1索引开始并获取所有其他字符。