• 输入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的字符串及其次数

  • 相关阅读:
    SSH免密登陆
    Linux服务器绑定多网卡IP
    搭建简易网站
    Linux中raid磁盘阵列
    Linux中防火墙命令
    Linux中LVM逻辑卷管理
    Linux中fdisk分区
    Linux计划任务
    Linux基础命令(三)
    Linux基础命令(二)
  • 原文地址:https://www.cnblogs.com/victorywr/p/13474116.html
Copyright © 2020-2023  润新知