现在我在HackRank做一个关于字符串操作的非常小的问题,就像家庭作业转储一样。问题是将一个给定的字符串变为大写,他们提到了他们的问题,如下所示
给你一个字符串。你的任务是将S的每个单词都大写。
输入格式
包含字符串S。
的单行输入约束
0< len(s) <1000
该字符串由字母数字字符和空格组成。 输出格式
示例输入
hello world
示例输出
Hello World
我在这里做过我从python写了两行脚本然后我提交了它 他们说这是一个错误的答案,但我不明白为什么我的代码遵循
l=list(map(str.capitalize,input().strip(' ').split()))
print(' '.join(l))
任何人都可以告诉我我的代码有什么问题 (在测试用例1/3/4/5上使用Python 3失败,所以) ?
答案 0 :(得分:1)
使用str.title
>>>'aba aba'.title()
'Aba Aba'
答案 1 :(得分:0)
如果您没有将分隔符指定为str.split()
,&#34;任何空格字符串都是分隔符,并且会从结果中删除空字符串。&#34;请注意,这里是&#34;空白&#34;包括标签,换行符等。
问题没有明确说明(没有定义什么&#34;字&#34;意味着)我们不知道他们用于测试用例的内容,但我认为他们有一个情侣字符串与换行符等。无论如何:明确指定" "
作为分隔符使测试通过:
# Python 2
s = raw_input()
print " ".join(x.capitalize() for x in s.strip().split(" "))
# Python 3
s = input()
print(" ".join(x.capitalize() for x in s.strip().split(" ")))
答案 2 :(得分:-1)
我认为错误在input()
上。如果HackRank使用python 2.7,这将尝试评估输入,而不是返回一个字符串。因此,输入hello world
将尝试评估此字符串,这是无意义的。如果你试着raw_input()
,这应该可以解决这个问题。