华为机试在线训练C++版(31~40)
程序员文章站
2022-05-25 13:56:03
...
31.【中级】单词倒排
之前有一个类似的题目,用的简单的方法:
#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.字符串运用-密码截取
上一篇: python:查看汉字的UTF8编码
下一篇: 设计模式应用教程2:观察者模式的应用