题目要求的Word定义 Here a "word" is defined as a continuous sequence of alphanumerical characters separated by non-alphanumerical characters or the line beginning/end.  所以 can""can""can 中应该是3个单词

#include <iostream>
#include <cctype>
#include <map>
using namespace std;
map<string,int> m;
void trims(string &s){
int isFront=1,isBack=1;
for(int i=0;i<s.size();i++) { if(isFront){
if(!isalnum(s[i])) {
s.erase(s.begin()+i);
i--;
}
else isFront=0;
}
}
for(int i=s.size()-1;i>=0;i--){
if(isBack){
if(!isalnum(s[i])){
s.erase(s.begin()+i);
}
else isBack=0;
}
}
} int main()
{
string s;
int c=0;
while(cin>>s){
for(int i=0;i<s.size();i++) {
s[i]=tolower(s[i]);
}
c++;
trims(s);
int i;string s1;
while(!s.empty()){
int len=s.size();
for(i=0;i<s.size();i++){
if(!isalnum(s[i])) break;
}
if(i!=len) {
s1=s.substr(0,i);
trims(s1);
s=s.substr(i);
trims(s);
}else{
s1=s;
}
if(!s1.empty())
m[s1]++;
if(i==len) break;
}
}
map<string,int>::iterator ii=m.begin();
int max=-1;
string key;
while(ii!=m.end()){
if(ii->second>max){
max=ii->second;
key=ii->first;
}else if(ii->second==max){
if(key>ii->first){
key=ii->first;
}
}
ii++;
}
cout<<key<<" "<<max<<endl; return 0;
}

  

PAT1071. Speech Patterns (25)的更多相关文章

  1. Pat1071: Speech Patterns

    1071. Speech Patterns (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming Peo ...

  2. PAT 甲级 1071 Speech Patterns (25 分)(map)

    1071 Speech Patterns (25 分)   People often have a preference among synonyms of the same word. For ex ...

  3. 1071. Speech Patterns (25)

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  4. 1071 Speech Patterns (25)(25 分)

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  5. PAT Advanced 1071 Speech Patterns (25 分)

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  6. PAT (Advanced Level) 1071. Speech Patterns (25)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  7. PAT甲题题解-1071. Speech Patterns (25)-找出现最多的单词

    分割字符串的用法+map映射给出input中出现次数最多的单词,如果次数相同,给出按字典序最小的. 这里我用了自定义分隔符来读取字符串,方法如下: //按照定义的分隔符d来分割字符串,对str进行读取 ...

  8. A1071 Speech Patterns (25 分)

    一.技术总结 开始拿到这道题目时,思考的是我该如何区分它们每一个单词,不知道这里还是要学习得知在cctype头文件中有一个函数用于查看是否为0~9.a~z.A~Z,就是isalnum(),又因为题目中 ...

  9. 【PAT甲级】1071 Speech Patterns (25 分)(getline(cin,x))

    题意: 输入一行字符串,输出出现过次数最多的由字母和数字组成的字符串以及它出现的次数(对大小写不敏感,输出全部输出小写). AAAAAccepted code: #define HAVE_STRUCT ...

随机推荐

  1. linux系统分析命令总结

    一张图片

  2. Ignatius and the Princess IV---hdu1029(动态规划或者sort)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1029 就是给你n(n是奇数)个数找出个数大于(n+1)/ 2 的那个数: n的取值范围是 n(1< ...

  3. 2018 又一个假期 over 了

    五一假期三天  在家窝三天  早上起床仍感觉没休息好  其实确实没休息好  假期的时间总不愿意拿来补觉用.周末准备去体检,真心恐惧医院的味道,硬着头皮还得上啊.

  4. 12.Project Fields to Return from Query-官方文档摘录

    1 插入例句 db.inventory.insertMany( [ { item: "journal", status: "A", size: { h: 14, ...

  5. 转载--菜鸟Linux上使用Github

    1.安装Git:Ctrl + Alt + T使用终端:使用命令 sudo apt-get install git 2.创建GitHub帐号:登陆git主页: https://github.com/,自 ...

  6. Ubuntu 常见错误--Could not get lock

    问题产生的原因:另外一个程序正在运行,导致资源被锁不可用.而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况 解决问题的办法:sudo rm /var/cache/apt/ar ...

  7. html知识代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)

    在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法:             (1)K-means             (2)Latent Dirichlet all ...

  9. PAT 1052 Linked List Sorting [一般]

    1052 Linked List Sorting (25 分) A linked list consists of a series of structures, which are not nece ...

  10. Python eval() 的使用:将字符串转换为列表,元祖,字典

    eval() 函数用来执行一个字符串表达式,并返回表达式的值. 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expres ...