【问题标题】:Python: Suggestions in reducing complexityPython:降低复杂性的建议
【发布时间】:2018-04-18 21:08:23
【问题描述】:

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

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

约束:T 在范围内(1,11),字符串 S 的长度在范围内(2,10001)。

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)

【问题讨论】:

    标签: python algorithm function loops


    【解决方案1】:

    您可以通过在字符串上使用advanced slicing 来简化代码

    s = input().strip()
    print(s[::2], s[1::2])
    

    对于s[i:j:k]

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多