您的位置:首页 > 其它

uva 409 - Excuses, Excuses!

2013-12-09 15:53 375 查看
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=350

这题没什么难度,一定要注意的地方是单词的判断,比如搜索单词word ,如果出现dword是不算的。这题一次性ac

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
void convert(int len,string src[],string dis[]){       //拷贝到复制数组进行大小写转换
for(int i=0;i<len;i++){
dis[i]=src[i];
for(int j=0;j<src[i].size();j++){
if(islower(dis[i][j]))
dis[i][j]-=32;
}

}
}
int main(){
int k,e,num[20],cishu=1;
string words[20],excuses[20],cpword[20],cpexcuses[20];
while(cin>>k>>e){
getchar();
int temp=0;//最高出现次数以及出现句子ID
for(int i=0;i<k;i++)
getline(cin,words[i]);
convert(k,words,cpword);
for(int i=0;i<e;i++)
getline(cin,excuses[i]);
convert(e,excuses,cpexcuses);
for(int i=0;i<e;i++){
int numtemp=0;
for(int j=0;j<k;j++){
int start=0;
while((temp=cpexcuses[i].find(cpword[j],start))!=-1){
start=temp+1;
if(temp==0){
if(isupper(cpexcuses[i][cpword[j].size()]))
continue;
}
else{
if(isupper(cpexcuses[i][temp-1]))
continue;
if(isupper(cpexcuses[i][temp+cpword[j].size()]))
continue;
}
numtemp++;
}
}
num[i]=numtemp;
}
int numId=0;
for(int i=0;i<e;i++){
if(num[i]>numId)
numId=num[i];
}
cout<<"Excuse Set #"<<cishu++<<endl;
for(int i=0;i<e;i++)
if(num[i]==numId)
cout<<excuses[i]<<endl;
cout<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: