• 加强赛第五轮G题(G


    感谢我的学长们对我的带领;该题思想与代码来源于WArobot;

    题目概述:

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

    Input有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

    Output每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

    Sample Input

    you are my friend
    #

    Sample Output

    4


    思想:该题采用getline输入,并且判断是否为“#”,“#”不被允许进入计数;
    该题采用set来存getline输入的每一个数,用if(c[i]==' '||i==c.size())来分隔每一个单词;
    由于题中没有说是否会出现连续的空格,所以用if(tmp=="") continue;和tmp="";来防止入坑;
    set对象的建立方法:set<string> st;
    set的插入元素的方法:st.insert(tmp);
    循环导入结束后输出:st.size()(size是导出元素个数的函数)即可;
    代码如下:

    #include "bits/stdc++.h"
    using namespace std;

    set<string> st;
    string c;
    void word(){
    st.clear();
    string tmp="";
    for(int i=0;i<=c.size();i++){
    if(c[i]==' '||i==c.size()){
    if(tmp=="") continue;
    st.insert(tmp);
    tmp="";
    }
    else tmp+=c[i];
    }
    cout<<st.size()<<endl;
    }
    int main(){
    while(getline(cin,c)&&c[0]!='#'){
    word();
    }
    return 0;
    }

  • 相关阅读:
    Linux命令详解之—tail命令
    Linux命令详解之—less命令
    Linux命令详解之—more命令
    Linux命令详解之—cat命令
    Linux命令详解之—pwd命令
    Linux命令详解之–cd命令
    ubuntu-14.04安装最新tensorflow记录
    rn最新版测试
    boost asio死锁一例
    dskinlite自适应dpi
  • 原文地址:https://www.cnblogs.com/sunowsir/p/6618005.html
Copyright © 2020-2023  润新知