题目:把一个句子中的单词进行反转,例如“how are you”变为“you are how”。
分析:对字符串进行两次反转操作,第一次对整个字符串中的字符进行反转,反转结果为:uoy era woh,通过这一次的反转已经实现了单词顺序的反转,只不过每个单词中字符的顺序反了,接下来只需要对每个单词进行字符反转即可得到想要的结果:you are how。
code:
def reverseStr(listStr, i, j):
while i < j:
tmp = listStr[i]
listStr[i] = listStr[j]
listStr[j] = tmp
i += 1
j -= 1
def swapWords(str):
lens = len(str)
ch = list(str)
# 对整个字符串进行字符反转操作
reverseStr(ch, 0, lens - 1)
begin = 0
# 对每个单词进行字符反转操作
i = 1
while i < lens:
if ch[i] == ' ':
reverseStr(ch, begin, i - 1)
begin = i + 1
i += 1
reverseStr(ch, begin, lens - 1)
return ''.join(ch)
if __name__ == "__main__":
str = "how are you"
print(swapWords(str))
程序运行结果:
you are how
网友评论