您需要确保护照上的名字和姓氏以 > 大写字母开头。例如,alison heck > 应正确大写为 Alison Heck。 注意 在一个单词中,只有第一个字符大写。示例 12abc 当大写时仍为 12abc。
一个测试用例失败,即 输入(标准输入)
1 w 2 r 3g
预期产出
1 W 2 R 3g
我的输出
1 W 2 R 3G
import math
import os
import random
import re
import sys
def solve(s):
x = re.sub("[^A-Za-z0-9]", " ", s)
a = x.title()
return a
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
s = input()
result = solve(s)
fptr.write(result + '\n')
fptr.close()
您可以在空格上输入
split
,然后使用capitalize
,这会将每个字符串的第一个字符转换为标题大小写。然后你可以再次join
将这些单词组合在一起。例如:
inp = '1 w 2 r 3g'
res = ' '.join(s.capitalize() for s in inp.split())
输出:
1 W 2 R 3g
尝试一个简单的循环,如果前面有空格,则将字符大写。
x = re.sub("[^A-Za-z0-9]", " ", s)
a = x[0]
for i in range(1, len(x)):
if x[i - 1] == " ":
a = a + x[i].title()
else:
a = a + x[i]
return a
输出是:
1 W 2 R 3g
你就不能
str.title()
这个吗?不存在大写数字这样的东西,所以 ”123abc”.title()
仍然应该产生您想要的结果。
另一个有效的答案,尽管单词之间有多个空格:
# Complete the solve function below.
def solve(s):
c = ""
s = s.capitalize()
for idx, t in enumerate(s):
x = re.search("^[a-z,A-Z]", t)
if s[idx-1] == ' ' and x:
c = c + t.capitalize()
else:
c = c + t
return c