zoukankan      html  css  js  c++  java
  • 安迪的第一个字典(Andy's First Dictionary , UVa 10815)

    输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出。

    单词不区分大小写。

    样例输入:

    Adventures in Disneyland

    Two blondes were going to Disneyland when they came to a fork in the road.

    The sign read: "Disneyland Left."

    So they went home.

    样例输出(为了节省篇幅只保留前5行):

    a

    adventures

    blondes

    came

    disneyland

    分析:由于string 已经定义了小于运算符,直接使用set保存单词集合即可

    注意,输入时把所有非字母的字符变成空格,然后利用stringstream得到各个单词

    代码如下

    #include<iostream>
    #include<string>
    #include<set>
    #include<sstream>
    using namespace std;
    
    set<string> dict;//string集合
    
    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中后就已经有序了
        }
        for(set<string>::iterator it = dict.begin();it != dict.end(); ++it){
            cout<< *it <<"
    ";
        }
        return 0;
    } 
  • 相关阅读:
    Team Foundation Server操作说明
    SPSS二次开发
    EXT 组件一些属性与方法(Tree)
    win10经验总结
    for语句执行顺序
    数组快速生成range的方法
    切图技巧
    input和textarea区别
    hosts文件位置
    css3动画总结
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/14135834.html
Copyright © 2011-2022 走看看