| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
总结一下容易忽略的地方,附略丑的代码1.Now和now是算一个单词的,并且以小写形式输出。
2.and..and.....and and 这是1个单词出现四遍
3.中间只要有符号,就当做是两个单词 比如i'm 当做一个i,一个m
4.中间有数字则当做一个字符,比如head4head,是一个单词
WA了很多发,最后代码越改越长。
#include<cstring>
#include<string>
#include<fstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cctype>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<stack>
#include<ctime>
#include<cstdlib>
#include<functional>
#include<cmath>
using namespace std;
#define PI acos(-1.0)
#define MAXN 10010
#define eps 1e-7
#define INF 0x7FFFFFFF
#define ff sqrt(5.0)
typedef long long ll;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
map<string,int> mp;
string ans[500],temp;
char fh[13] = {",.;\'`\"()/:-"};
char a[500];
int main(){
map<string,int>::iterator it;
int i,cnt,maxm = 1,flag;
while(scanf("%s",a)!=EOF){
cnt = 0;
flag = 0;
int l = strlen(a);
for(i=0;i<l;i++){
if(isalpha(a[i])){
a[i] = tolower(a[i]);
}
}
while(!isalpha(a[cnt])) cnt++;
for(i=l-1;i>=cnt;i--){
if(!isalnum(a[i])){
a[i] = '\0';
l--;
}
else break;
}
for(i=0;i<l;i++){
if(isalnum(a[i])){
flag = 1;
break;
}
}
if(flag==1){
int ttt = 0;
for(i=cnt;i<l;i++){
if(!isalnum(a[i])){
a[i] = '\0';
temp = string(a+cnt+ttt);
if(mp[temp]==NULL) mp[temp] = 1;
else{
mp[temp]++;
if(mp[temp]>maxm) maxm = mp[temp];
}
while(!isalnum(a[i+1])) i++;
ttt=i+1;
}
}
temp = string(a+cnt+ttt);
if(mp[temp]==NULL) mp[temp] = 1;
else{
mp[temp]++;
if(mp[temp]>maxm) maxm = mp[temp];
}
// cout<<temp<<endl;
}
}
cnt = 0;
for(it=mp.begin();it!=mp.end();it++){
if(it->second==maxm){
ans[cnt++] = it->first;
}
}
sort(ans,ans+cnt);
printf("%d occurrences\n",maxm);
for(i=0;i<cnt;i++){
cout<<ans[i]<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator