题目描述:
输入单行英文句子,里面包含英文字母,空格以及,.? 三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句
输入描述:
输入字符串S,S的长度1≤N≤100
输出描述:
输出逆序后的字符串
补充说明:
标点符号左右的空格≥0,单词间空格>0
示例1
输入:
yM eman si boB.
输出:
My name is Bob.
示例2
输入:
woh era uoy ? I ma enif.
输出:
how are you ? I am fine.
解题思路:
遍历字符串,如果遇到非字母value,且单词列表x为空,说明value前没有字母,直接添加至字符串列表y
如果遇到非字母value,且单词列表x不为空,说明value前有一个单词,此时需要将单词列表x逆序,并转为字符串后添加到y中,然后别忘了把value也添加进y,并初始化单词列表x
如果遇到字母value,则将其添加进列表x
需要注意的是,如果该value是字符串中最后一个字符,且其为字母,那么将会没有下一个非字母value用于将单词列表x逆序添加进y,需要对该情况单独处理
st=input()
#存储一个单词,便于倒序
x=[]
#存储整个字符串,用于拼接
y=[]
for i,value in enumerate(st):
if not value.isalpha():
if not x:
y.append(value)
else:
y.append(''.join(x[::-1]))
y.append(value)
x=[]
else:
x.append(value)
if i==len(st)-1:
y.append(''.join(x[::-1]))
print(''.join(y))