1071 Speech Patterns (巧用字符流逃课)

(阅读理解题,刷了这么多pat,感觉代码水平没升多少,英语水平倒是有了些许提升,回头考个六级试试水平呵呵呵。)

思路:题目本身没什么好说的,一个哈希表记录单词,然后关键就是怎么分割单词了。我有一计,可以很方便地将单词分割出来:我们可以将除了数字与英文字母的所有其他字符替换成空格,并且将字符全换成小写,然后将处理后的字符串传入stringstream字符流中,这样就可以一个单词一个单词地读取了。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main(){
    string s;
    getline(cin,s);
    int n=s.size();
    for(int i=0;i<n;i++){
        if(s[i]>='A'&&s[i]<='Z')s[i]+='a'-'A';
    }
    map<string,int>mp;
    stringstream ss;
    for(int i=0;i<n;i++){
        if(!isalpha(s[i])&&!isdigit(s[i])){
            s[i]=' ';
        }
    }
    ss<<s;
    string res;
    while(ss>>res){
        mp[res]++;
    }
    int mx=0;
    string word;
    for(auto x:mp){
        if(x.second>mx){
            word=x.first;
            mx=x.second;
        }
    }
    cout<<word<<' '<<mx;
}

(为什么说是阅读理解题?初看题目与样例,我还以为只需要判定引号里面的单词才行,于是写一堆边界判定,一交,嘎,就过一个测试点。一直改一直找是哪出了问题,改了一个多小时,放弃了,看别人写地代码,哦,不用管引号,啪得一下把乱七八糟的判定什么的全删了,直接过了,还更简单了,服,pat真就比谁的脑洞大呗)

相关推荐
paeamecium18 小时前
【PAT甲级真题】- String Subtraction (20)
数据结构·c++·算法·pat考试·pat
paeamecium1 天前
【PAT甲级真题】- Shortest Distance (20)
数据结构·c++·算法·pat考试·pat
paeamecium2 天前
【PAT甲级真题】- Shuffling Machine (20)
c++·算法·pat考试·pat
paeamecium8 天前
【PAT甲级真题】- General Palindromic Number(20)
数据结构·c++·算法·pat考试·pat
paeamecium10 天前
【PAT甲级真题】- Spell It Right(20)
c++·pat考试·pat
paeamecium19 天前
【PAT甲级真题】- Recover the Smallest Number (30)
数据结构·算法·pat考试·pat
paeamecium21 天前
【PAT甲级真题】- Table Tennis (30)
c++·pat考试·pat
paeamecium1 个月前
【PAT甲级真题】- Stack (30)
数据结构·算法·pat考试·pat
paeamecium1 个月前
【PAT甲级真题】- Cars on Campus (30)
数据结构·c++·算法·pat考试·pat
paeamecium1 个月前
【PAT甲级真题】- All Roads Lead to Rome (30)
数据结构·c++·算法·pat考试·pat