zoukankan      html  css  js  c++  java
  • LeetCode OJ-- Reverse Words in a String

    https://oj.leetcode.com/problems/reverse-words-in-a-string/

    给一个字符串 abc  dd  m,返回 m dd abc.

    注意:输入中可能有前置或者后置空格,要求,都删除掉。输出的每个单词之间,空格大小为1.

    class Solution {
    public:
        void reverseWords(string &s) {
            if(s.empty())
                return;
            
            //remove heading and trailing spaces
            int i = 0;
            while(i<s.size() && s[i] == ' ')
                i++;
            if(i == s.size())
            {
                s = "";
                return;
            }
            int j = s.size() - 1;
            while(j>-1 && s[j] == ' ')
                j--;
            if(j == -1)
            {
                s = "";
                return;
            }
            
            s = s.substr(i,j - i + 1);
            
            size_t pos = 0;
            vector<string> strs;
            size_t begin = 0;
            while(begin < s.size())
            {
                pos = s.find_first_of(' ',begin);
                if(pos == begin)
                {
                    begin++;
                    continue;
                }
                else if(pos != -1)
                    strs.push_back(s.substr(begin,pos - begin));
                else  //pos == -1, the end
                {
                    strs.push_back(s.substr(begin,s.size() - 1 - begin + 1));
                    break;
                }
                begin = pos + 1;
            }
            
            string ans;
            for(int i = strs.size() - 1; i > 0; i--)
            {
                ans += strs[i];
                ans += " ";
            }
            ans += strs[0];
            
            s = ans;
        }
    };
  • 相关阅读:
    鲁迅散文——随感录三十五
    跳一跳201803-1
    鲁迅散文——狗的驳诘
    鲁迅散文——立论
    小中大201903-1
    鲁迅散文——题辞
    小明上学201812-1
    买菜201809-2
    Linux常用命令-2
    LaTeX——基本介绍及字体设置
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3829846.html
Copyright © 2011-2022 走看看