欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

华为机试在线训练C++版(31~40)

程序员文章站 2022-05-25 13:56:03
...

31.【中级】单词倒排

华为机试在线训练C++版(31~40)
之前有一个类似的题目,用的简单的方法:

#include <iostream>
#include <string>

using namespace std;
int main() {
    string input, output;
    while (cin >> input) {
        output = input + ' ' + output;
    }
    cout << output << endl;
    return 0;
}

然而并没有通过,所以还是老实的做吧:从前往后扫描字符串,遇到是单词就入vector,最后反向输出即可:

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main() {
    string str;
    while (getline(cin, str)) {
        vector<string>svec;
        svec.clear();
        string temp = "";
        for (int i = 0; i < str.size(); ++i) {
            if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
                temp += str[i];
            else {
                if (temp.size() > 0) {
                    svec.push_back(temp);
                    temp = "";
                }
            }
        }
        if (temp.size() > 0) {
            svec.push_back(temp);
        }

        for (int i = svec.size() - 1; i > 0; --i) {
            cout << svec[i] << ' ';
        }
        cout << svec[0] << endl;
    }
    return 0;
}

32.字符串运用-密码截取

华为机试在线训练C++版(31~40)

相关标签: 刷题练习