LintCode-53.翻转字符串

翻转字符串

给定一个字符串,逐个翻转字符串中的每个单词。

说明

  • 单词的构成:无空格字母构成一个单词
  • 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
  • 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个

标签

字符串处理

code

class Solution {
public:
    /**
     * @param s : A string
     * @return : A string
     */
    string reverseWords(string s) {
        // write your code here
        string word, line;
        int size=s.size();
        int i=size-1, j, begin=size-1, end=size-1;

        if(s.empty())
            return string();

        while(i >= 0) {
            while(s[i]==' ' && i>=0) {
                begin--;
                end--;
                i--;
            }
            while(s[i]!=' ' && i>=0) {
                begin--;
                i--;
            }
            word.resize(0);
            for(j=begin+1; j<=end; j++) 
                word.append(1, s[j]);
            }
            if(begin == 0)
                line = line + word;
            else
                line = line + word + " ";
            end = begin;
        }
        return line;
    }
};
posted @ 2017-05-04 17:10  LiBaoquan  阅读(815)  评论(0编辑  收藏  举报