zoukankan      html  css  js  c++  java
  • hdu 2072 单词数(字符串)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072

    题意

    每行输入由小写字母和空格组成,统计每行中不同的单词数。

    题解

    题解一

    比较简洁的解法,读入每行输入后重定向至字符流 $stringstream$,与 uva10815 相似。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        string s;
        while (getline(cin, s) and s != "#") {
            set<string> st;
            stringstream ss(s);
            string t; 
            while (ss >> t)
                st.insert(t);
            cout << st.size() << "
    ";
        }
    }

    题解二

    不用 $stringstream$ 的话可以考虑以空格为间隔点截取单词,但需要注意两点:

    • 在每行末尾再加上一个空格,因为可能有的行不以空格结尾
    • 判断截取的起点是否为空格,因为可能有的行以空格开始或有多个空格相邻

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        string s;
        while (getline(cin, s) and s != "#") {
            set<string> st;
            s.push_back(' ');
            int pre = 0;
            for (int i = 0; i < s.size(); i++) {
                if (s[i] == ' ') {
                    if (s[pre] != ' ')
                        st.insert(s.substr(pre, i - pre));
                    pre = i + 1;
                }
            }
            cout << st.size() << "
    ";
        }
    }
  • 相关阅读:
    JavaScript String常用方法和属性
    JavaScript null 和 undefined
    document.write()
    MyBatis中的@MapKey注解
    Zookeeper实现分布式锁
    zookeeper相关
    二阶段提交和三阶段提交
    代理模式
    模板方法模式
    策略模式
  • 原文地址:https://www.cnblogs.com/Kanoon/p/13236061.html
Copyright © 2011-2022 走看看