我正在尝试解决一个黑客等级挑战: 给定长度为n、索引范围为0到n-1的字符串s,将其偶数索引字符和奇数索引字符打印为两个空格分隔的字符串。在一行上(有关更多详细信息,请参见下面的示例) 链接:https://www.hackerrank.com/challenges/30-review-loop/problem
错误:
例如: 输入“adbecf”应输出“abc def”
当我运行python Visualizer时,我的代码似乎有正确的输出。。但在黑客级别上,我的答案是错误的。有人知道我的代码有什么问题吗
这是我试过的密码-
class OddEven:
def __init__(self, input_statement):
self.user_input = input_statement
def user_list(self):
main_list = list(user_input)
even = []
odd = []
space = [" "]
for i in range(len(main_list)):
if (i%2) == 0:
even.append(main_list[i])
else:
odd.append(main_list[i])
full_string = even + space + odd
return(full_string)
def listToString(self):
my_string = self.user_list()
return(''.join(my_string))
if __name__ == "__main__":
user_input = str(input ())
p = OddEven(user_input)
print(p.listToString())
首先,输入总是字符串,您不需要在这里转换它
每一行都作为单独的输入提供给您。字符串数等于第一行中的num。在这种情况下2,所以
user_input
函数内的^variable应作为self.user_input
访问,它是对象的属性,可以作为self
传递给函数您还可以直接迭代列表
在这里:
您试图连接列表,这不是一个好主意,您仍然会得到一个列表。 您可以使用
join
string方法通过使用一些字符串分隔它们来连接列表最好将
odd
和even
定义为空字符串。 然后使用连接(+)将它们连接起来在这里:
您不必与0进行比较。Python将对条件右边的内容求值为True或False。因此:
有一个更简单的解决方案:
下面是解决此问题的简单代码:)
相关问题 更多 >
编程相关推荐