单词倒排(C++牛客网)

解题思路:

(1)先存储所有单词,再倒序插入

#include<iostream>
#include<string>
#include<vector>

using namespace std;

string change(string &s) {
    vector<string> v;
    string str="";
    int i=0;
    while(i<s.length()) {
        if(('a'<=s[i] && s[i]<='z') ||('A'<=s[i] && s[i]<='Z')) {
            while(i<s.length() && (('a'<=s[i] && s[i]<='z') || ('A'<=s[i] && s[i]<='Z'))) {
                str+=s[i++];
            }
            v.push_back(str);
            str="";
        } else i++;
    }
    str="";
    for(int i=v.size()-1;i>=0;i--) {
        str+=v[i];
        str+=" ";
    }
    
    return str.substr(0,str.length()-1);
}

int main() {
    string s;
    while(getline(cin,s)) {
        //cout<<s<<endl;
        cout<<change(s)<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/coolsunxu/article/details/114882797