题解

Andys First Dictionary

https://ac.nowcoder.com/acm/problem/116429

输入一段英语文本,找出所有不同的单词,按字典序从小到大输出,单词不区分大小写。

【分析】
需要对输入进行预处理,因为包含标点符号等字符,需要将不是字母的字符变为空格,再将每个单词全部变为小写,用 set 统计即可
stringstream 参考链接:https://blog.csdn.net/u013186902/article/details/50853217

#include <iostream>
#include <string>
#include <set>
#include <sstream>

using namespace std;

set<string> dict;
int main() {
    string s, buf;
    while (cin >> s) {
        for (int i = 0; i < s.length(); i++) {
            if (isalpha(s[i])) {
                s[i] = tolower(s[i]);
            } else {
                s[i] = ' ';
            }
        }
        stringstream ss(s);
        while (ss >> buf) {
            dict.insert(buf);
        }
    }
    set<string> :: iterator i;
    for (i = dict.begin(); i != dict.end(); i++) {
        cout << *i << endl;
    }
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
程序员小白条:太晚了,看别人找到实习了才投的话,自己本身就没啥准备,计划太晚咯,只能吞苦果子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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