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

    #include <iostream>
    #include <cstdlib>
    #include <string>
    #include <algorithm>
    using namespace std;

    void reverseWords(string &s) {
        string rs ;
        for(int i = s.length()-1; i >= 0; ){
            while(s[i] == ' ' && i >= 0)
                i--;
            if(i < 0){
                break;
            }
            if(!rs.empty())
                rs.push_back(' ');
            string t;
            while(s[i] != ' ' && i>=0)
                t.push_back(s[i--]);
            reverse(t.begin(),t.end());
            rs.append(t);
        }
        s = rs;
    }



    int main(int argc, char** argv) {
        string s = "a b cd";
        reverseWords(s);
        cout<<s;
        return 0;
    }

    其他版本还有C的:

    #include <iostream> 

    #include <cstdlib>
    #include <string>
    #include <algorithm>
    using namespace std;

    void reverseWords(string &s) {
        const char * src = s.c_str();
        if(src == NULL)
            return;
        int len = 0;
        bool flag = false;
        while(src[len] != ''){
            if(src[len] != ' ')
                flag = true;
            len++;
        }
        if(flag == false){
            s = string();
            return;
        }
        if(len == 0)
            return;
        char * result ;
        result[0] = '';
        for(int i = len - 1; i >=0; ){
            while(src[i] == ' ' && i >= 0)
                i--;
            if(i < 0)
                break;
            if(strlen(result) != 0)
                strcat(result," ");
            int wordlen = 0;
            while(src[i] != ' ' && i >= 0){
                wordlen++;
                i--;
            }
            char * tmp = (char*)malloc(sizeof(char)*(wordlen+1));
            int j = i+1;
            for(j = i+1; j < i+1+wordlen; j++)    
                tmp[j-i-1] = src[j];
            tmp[wordlen] = '';
            strcat(result,tmp);
        }
        if(strlen(result) == 0)
            s = string();
        else
            s = result;
    }



    int main(int argc, char** argv) {
        string s = "a";
        reverseWords(s);
        cout<<s.length()<<endl;
        cout<<s;
        return 0;
    }

  • 相关阅读:
    MySql 主从
    MySql Docker 主主配置
    【算法刷题】C01-Q01 设计一个有getMin功能的栈
    redis管道技术pipeline二——api
    redis管道技术pipeline一 ——api
    Hbase结构和原理
    吴晓波:预见2021(跨年演讲 —— 02 “云上中国”初露峥嵘)
    吴晓波:预见2021(跨年演讲 —— 08 超级城市大赛鸣枪)
    吴晓波:预见2021(跨年演讲 —— 07 房产投资低空飞行)
    吴晓波:预见2021(跨年演讲 —— 06 购物中心即将消亡)
  • 原文地址:https://www.cnblogs.com/jilichuan/p/3997389.html
Copyright © 2011-2022 走看看