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".

    click to show clarification.

    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.
    思路:从头往后扫描字符串,从第一个开始不是空格算起。将单词放入temp中,直到遇到空格,作如下处理,将单词放入result中去,接下来再有单词可以放到上一个单词的前面,另加空格。如此反复,就可以将单词与单词为单位反转了。
    class Solution {
    public:
        void reverseWords(string &s) {
            int nLen=s.size();
            if(nLen<=0)
                return;
            string temp,result;
            int index=0;
            while(s[index]==' ')
                index++;
            for(int i=index;i<nLen;)
            {
                if(s[i]!=' ')
                {
                    temp+=s[i];
                    i++;
                }
                else
                {
                    while(s[i]==' ')
                        i++;
                    if(i==nLen)
                        break;
                    result=" "+temp+result;
                    temp="";
                }
            }
            s=temp+result;
        }
    };
  • 相关阅读:
    ubuntu qtcreator 硬件权限问题
    关于LuCi
    npm 使用记录
    ubuntu 下简单录音
    qthread 使用 signal 方法通信
    线程安全笔记一则
    ubuntu 设置 NAT 转发
    debian 中新建或调整 swap 空间
    关于 htonl 和 ntohl 的实现
    shell 调试手段总结
  • 原文地址:https://www.cnblogs.com/awy-blog/p/3830810.html
Copyright © 2011-2022 走看看