zoukankan      html  css  js  c++  java
  • 输入n个数字符串(单词、数字字符),找出出现次数少于 n/3 的字符串

    大概思路:

    一个map<string,int>存储输入的字符内容以及输入的次数,对次数进行判断,输出少于指定次数的字符串:

    #include<iostream>
    #include<map>
    #include<string>
    
    using namespace  std;
    
    int main()
    {
        int n;
        int s=0;
        map<string, int> mp;
        cin >> n;
        string str="";
        map<string, int>::iterator it;
        cin.ignore();    //特别注意这里,使用for循环+getline实现多行输入字符串,要加这句来干掉滞留在输入流中的换行符
        for (int i = 0; i<n; i++)
        {
            getline(cin, str);
            it = mp.find(str);
            if (it == mp.end())     //判断字符串石否之前出现过
            {
            mp[str] = 1;      //第一次出现就把次数设为1
            s += 1;
            }
            else
            it->second+=1;      //不是第一次出现就把次数加 1
            str = "";
            
            
        }
        it = mp.begin();
        cout << "len:  " << s << endl;
        cout << "mp.size: " << mp.size()<<endl;
        while (it != mp.end())
        {
            if((it->second)<(s / 3.0))
            {
                cout << it->first << " " << it->second << endl;
                
            }
            it++;
    
    
        }
    
    
        
    }

    测试:第一行输入待输入字符串的个数n,后面n行输入每次输入的字符串,输出次数少于n/3的字符串及其次数

  • 相关阅读:
    预防新型冠状病毒科普宣传网站
    四则运算
    结对审查
    最大子段和
    单元自动测试Junit
    浅谈过去,畅想未来
    第一次的结对编程
    代码审查
    单元测试
    junit4单元测试
  • 原文地址:https://www.cnblogs.com/victorywr/p/13474116.html
Copyright © 2011-2022 走看看