Reverse Words

题目描述

解题方法

Solution

import re
class Solution:
    # @param A : string
    # @return string
    def reverseWords(self, A):
        A = A.strip()
        A = re.sub('\s+', ' ', A) # regular expression
        A = self.reverse(A, 0, len(A)-1)
        word_start = 0
        for i in range(len(A)):
            if A[i] == " ":
                A = self.reverse(A, word_start, i-1)
                word_start = i + 1
        A = self.reverse(A, word_start, len(A)-1)

        return A

    def reverse(self, A, start, end):
        A = list(A)
        while start < end:
            A[start], A[end] = A[end], A[start]
            start += 1
            end -= 1
        return "".join(A)

Reference