题解 | #单词倒排#C++利用getline和vector

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <iostream>
#include <vector>
#include <sstream>
//总体思路是将非字母字符转换成空格,然后利用getline分割,并压入vector容器,最后倒序遍历
using namespace std;
void ReverseWords(string input) {
  //遍历字符串,将非字母字符变成空格
    for (int i = 0; i < input.size(); i++) {
        if (!isalpha(input[i])) {
            input[i] = ' ';
        }
    }

    vector<string> tokens;//声明一个vector容器,以便将存储的字符串压入容器
    string token;//声明一个字符串,以便存储读取的字符串
    istringstream tokenStream(input);//将字符串转换成输入流
    char delimiter = ' '; //声明分割符
//利用getline读取一行文本,直到遇到特定的分隔符(默认是换行符'\n')
    while (getline(tokenStream, token, delimiter)) {
        tokens.push_back(token);
    }
//倒序遍历打印vector容器的元素,加上空格输出
    for (int i = tokens.size() - 1; i >= 0; i--) {
        cout << tokens[i] << ' ';
    } 
    
    
}
int main() {
    string s;
    getline(cin, s);
    ReverseWords(s);
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-17 14:06
点赞 评论 收藏
分享
砸砸无所畏惧:同字节耐面王 不同部门一起面了十几轮 最后放弃了 有个面试官透露面评都是算法能力不达预期
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务