题目要求的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. wampserver环境搭建

    一.进入wampserver官网下载:http://www.wampserver.com/ 下载对应电脑相应版本的wamp程序(比如电脑是64位系统的就下载对应的64位的) 二.安装(直接点击exe文 ...

  2. Linux/Mac里复制终端Session(像SecureCRT一样)

    在你的登录账户下的.ssh文件夹新建一个文件:config cd ~/.ssh config的文件中,内容为: host * ControlMaster auto ControlPath ~/.ssh ...

  3. Python程序员鲜为人知但你应该知道的16个问题(转)

    add by zhj: 没找到原文出处,只能找到转载的,文中说有17个坑,其实是16个 全文如下 这篇文章主要介绍了Python程序员代码编写时应该避免的16个“坑”,也可以说成Python程序员代码 ...

  4. FindBugs——帮助查找隐藏的bug

    FindBugs 1.什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序 ...

  5. java 多线程 day15 CyclicBarrier 路障

    import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.ut ...

  6. python学习笔记(二十七)多线程与多进程

    线程是程序里面的最小执行单元. 进程是资源的集合. 线程是包含在一个进程里面,一个进程可以有多个线程,一个进程里面默认有一个主线程.由主线程去启动子线程. 1.多线程 import threading ...

  7. php微信支付回调验证

    //字典排序拼接字符串 function getWxPaySignature($arr){ ksort($arr); $str = ''; foreach ($arr as $k=>$a){ $ ...

  8. Apache配置虚拟主机的三种方法(基于IP、端口、域名)

    1 Apache虚拟主机的实现方式有3种. 基于IP的虚拟主机 基于端口的虚拟主机 基于域名的虚拟主机 2.1 启用虚拟主机的准备工作 2.1.1安装httpd [root@mail httpd]# ...

  9. 如何进入单用户模式(CentOS6.9)

    环境: CentOS6.9_64位 步骤1 虚拟机此时处在关机模式,开机后在下图界面4秒倒计时结束前,按 e 步骤2 此时会进入下图所示界面,接着按一下 e 步骤3 此时会进入下图所示的界面,选择第2 ...

  10. PAT 1077 Kuchiguse [一般]

    1077 Kuchiguse (20 分) The Japanese language is notorious for its sentence ending particles. Personal ...