Hackerrank 字符串分隔挑战

Hacker rank string seperated challenge

我在这个挑战中需要帮助,我在这个黑客排名挑战中总是出错 与 jupyter notebook 一起出现,但不在 hacker rank 控制台中。

任务 给定一个字符串,其长度是从到索引的,将其索引为偶数和索引为奇数的字符作为 space 分隔的字符串打印在一行中(有关详细信息,请参见下面的示例)。

注:被认为是偶数索引。

例子

s = adbecf

打印 abc def

输入格式

# Enter your code here. Read input from STDIN. Print output to STDOUT
t = input()
p = len(t)


for i in range(p):
  s = t[i]
  n = len(s)
  even = []
  odd = []
  for j in range(n):
    if j % 2 == 0:
      even.append(s[j])
  for j in range(n):
    if j % 2 != 0:
      odd.append(s[j])
  first_join=''.join(even)
  second_join = ''.join(odd)
  print("{} {}".format(first_join,second_join)

您正在迭代 s,其中 s = t[i],这是不正确的。

t = input()
p = len(t)

even = []
odd = []
for j in range(p):
    if j % 2 == 0:
      even.append(t[j])
  for j in range(n):
    if j % 2 != 0:
      odd.append(t[j])
first_join=''.join(even)
second_join = ''.join(odd)
print("{} {}".format(first_join,second_join)

您可以使用列表理解来简化它。

t = ""
p = len(t)
even = ''.join([t[i] for i in range(0,p,2)])
odd = ''.join([t[i] for i in range(1,p,2)])
print(f"{even} {odd}")

无需使用复杂的方法。这是一个简单的方法。

t = input()
p = len(t)
ans = "" # create empty string
for i in range(0,p,2):
    ans += t[i] # Add even characters
ans += " " # Add space.
for j in range(1,p,2):
    ans += t[j] # Add odd characters
print(ans)   

输入:adbecf

输出:abc def