题解 | #单词倒排#

单词倒排

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

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

using namespace std;

int main() {
    string s;
    getline(cin, s);
    vector<string> v;//用于存储所有“单词”
    for (auto it = s.begin(); it != s.end(); ++it) { //从头遍历s找到字母
        if (isalpha(*it)) {
            auto jt = it;
            for (jt = it + 1; jt != s.end(); ++jt) { //从it下一个开始遍历找到非字母字符
                if (!isalpha(*jt)) {
                    string t(it, jt);//左闭右开区间,放进t中
                    v.push_back(t);//将t放进v中
                    it = jt;//it置为jt,结合++it就是从jt的下一个位置继续遍历
                    break;
                }
            }
            if (jt == s.end()) { //如果遍历到s最后还是字母
                string t(it, jt);
                v.push_back(t);
                break;
            }
        }
    }
    for (int vt = v.size() - 1; vt >= 0; --vt) { //倒序输出
        cout << v[vt] << " ";
    }
    cout << endl;
    return 0;
}

思路:从字符串s中提取被非字母字符分隔的“单词”,依次存储到存储字符串的顺序容器v中,然后倒序输出即可。

全部评论

相关推荐

魔法恐龙:这真得给个机会,面试的时候问问不吃饭78.5h怎么做到的
点赞 评论 收藏
分享
09-21 21:14
门头沟学院
否极泰来来来来:和他说:这里不好骂你,我们加个微信聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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