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

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

    For example,
    Given s = "the sky is blue",
    return "blue is sky the".

    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.
    #include "stdafx.h"
    #include <string>
    #include <iostream>
    using namespace std;
    
    
    class Solution{
    public:
        void reverseWords(string &s)
        {
            string revese, tmp;
            int k = 0;
            while (s[k] == ' ')    //ignore the leading spaces
            {
                k++;
            }
    
            for (int i = k; i < s.size();)
            {
                if (s[i] != ' ')
                {
                    tmp += s[i++];
                }
                else 
                {
                    while (s[i] == ' ') // reduce the spaces to a single space
                        i++;
                    if (i == s.size())
                        break;
                    revese = " " + tmp + revese;
                    tmp = "";
                }
            }
            s = tmp + revese;
        };
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        Solution *sln = new Solution();
        string s = "  hello dd  ";
        sln->reverseWords(s);
        cout << s << endl;
    
        return 0;
    }
  • 相关阅读:
    SolrCloud阶段总结
    Solr总结
    机器学习算法与Python实践之(六)二分k均值聚类
    机器学习问题方法总结
    浅谈Kmeans聚类
    AVL树的算法思路整理
    Solr4.6从数据库导数据的步骤
    红黑树
    浅谈 Adaboost 算法
    POJ 1836 Alignment
  • 原文地址:https://www.cnblogs.com/pengpenghappy/p/3861542.html
Copyright © 2011-2022 走看看