Reverse Words in a String

来源:互联网 发布:平板推荐知乎 编辑:程序博客网 时间:2024/06/06 03:17

Given an input string, reverse the string word by word.

  • For example,
    Given s = “the sky is blue”,
    return “blue is sky the”.

  • Update (2015-02-12):
    For C programmers: Try to solve it in-place in O(1) space.

Clarification:

  • What constitutes a word?
  • A sequence of non-space characters constitutes a word.
  • Could the input string contain leading or trailing spaces?Yes. However, your reversed string should not contain leading or trailing spaces.
  • How about multiple spaces between two words?
    Reduce them to a single space in the reversed string.

翻转字符串,但是字符串中的单词字母顺序不变,还要注意空格哦。Python代码如下:

class Solution:    # @param s, a string    # @return a string    def reverseWords(self, s):        if len(s) == 0:            return ""        ret = ""        start = False        begin = end = 0        start = False        for i in range(len(s)):            if s[len(s) - i - 1] != '' and s[len(s) - i - 1] != ' ' and end == 0:                end = len(s) -i            if end != 0 and (s[len(s) - i - 1] == ' ' or i == (len(s) - 1)):                begin = len(s) -i                if not start:                    if i == (len(s) - 1) and s[begin -1] != ' ':                        begin -= 1                    ret += s[begin:end]                    start = True                else:                    if i == (len(s) - 1) and s[begin -1] != ' ':                        begin -= 1                    ret += " " + s[begin:end]                begin = 0                end = 0        return ret
0 0
原创粉丝点击