【python程序员面试宝典|程序员算法宝典】

【python】如何实现单词反转?

2019-07-25  本文已影响0人  阿牛02

题目:把一个句子中的单词进行反转,例如“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

上一篇 下一篇

猜你喜欢

热点阅读