zoukankan      html  css  js  c++  java
  • PAT A1071 Speech Patterns (25分)


    思路:
    统计单词个数,大小写字母+数字的组合是合法的单词,给出一个字符串,求出现的合法的单词的个数最多的那个单词,以及它出现的次数。如果有并列的,那么输出字典序里面的第一个(注意:由于map内部是由红黑树实现的,会自动按照从小往大的顺序自动排列键值,因子首先访问到的键值就是字典序最小的)
    利用map,根据key从小到大排序则直接map<string,int>
    总结:
    这道题没有太多需要注意的地方,可能需要稍微复习一下string的常用公式
    依然要注意:string虽然以结束但是访问时不会遍历到,所以在这道题我的解决方案里面需要在处理最后一个单词

    #include<iostream>
    #include<map>
    #include<string>
    using namespace std;
    map<string,int> word;
    
    
    bool ischaracter(char c){
        if(c>='0'&&c<='9') return true;
        else if(c>='a'&&c<='z') return true;
        else if(c>='A'&&c<='Z') return true;
        else return false;
    }
    int main(){
        string speech;
        string w;
        getline(cin,speech);
        int pos = -1;//未指向
        int len = 0;
        for(int i = 0;i < speech.length();i++){
            if(ischaracter(speech[i])==true){
                if(speech[i]>='A'&&speech[i]<='Z') speech[i] = speech[i] - 'A'+'a';
                if(pos == -1) pos = i;
                len++;
            }else{
                if(pos!=-1){//有值
                    w = speech.substr(pos,len);
                    if(word.find(w)!=word.end()){
                        word[w]++;
                    }else{
                        word.insert(make_pair(w,1));
                    }
                }
                //初始化
                pos = -1;
                len = 0;
            }
        }
        if(pos!=-1){
           w = speech.substr(pos,len);
           if(word.find(w)!=word.end()){
               word[w]++;
           }else{
             word.insert(make_pair(w,1));
           }        
        }
        string mostword;
        int ans = 0;
        for(map<string,int>::iterator it = word.begin();it!=word.end();it++){
            if(it->second > ans){
                ans = it->second;
                mostword = it->first;
            }
        }
        cout<<mostword<<" "<<ans<<endl;
        return 0;
    }
    
  • 相关阅读:
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    网站静态化处理—反向代理(10)
    网站静态化处理—满足静态化的前后端分离(9)
    网站静态化处理—前后端分离—下(8)
  • 原文地址:https://www.cnblogs.com/shuibeng/p/13586935.html
Copyright © 2011-2022 走看看