#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h> //isalpha
char keywords[30][100]={'\0'};
char line[30][100]={'\0'};
char new_line[30][100]={'\0'};
int count[30]={0};
int main(){
freopen("input.txt", "r", stdin);
int K,E;
int max=0;
int excuse=1;
while(scanf("%d %d",&K,&E)!=EOF){
getchar();
//輸入關鍵字詞
for(int i=0;i<K;i++){
gets(keywords[i]);
}
//getchar();
//輸入辯詞
for(int i=0;i<E;i++){
gets(line[i]);
int len=strlen(line[i]); //獲得line長度
for(int j=0;j<len;j++)
new_line[i][j]=line[i][j]; //Copy一份至new_line
for(int j=0;j<len;j++){ //消除new_line裡所有非字母符號
if(!isalpha(new_line[i][j])){
new_line[i][j]=' ';
}
if(new_line[i][j]>='A'&&new_line[i][j]<='Z')new_line[i][j]+=32; //所有大寫換小寫
}
//puts(line[i]);
//puts(new_line[i]);
}
for(int w=0;w<K;w++) //每個keyword都跑一次
for(int i=0;i<E;i++){ //每個excuse都跑一次
int match=0, start=0, flag=0,flag2=0;
while(new_line[i][flag]!='\0'){
//如果在excuse中檢查到和單字字首相同,且前一個字元不為字母時,start=1
if(new_line[i][flag]==keywords[w][0]&&!isalpha(new_line[i][flag-1]))start=1;
if(new_line[i][flag]==keywords[w][flag2]&&start==1){ //之後的檢查,在start=1的前提下進行
match=1; //依然和單字相同時,match維持為1
flag++;
flag2++;
}else{
start=0; //一檢查到不是,則start=0、match=0,flag2回到單字起點
match=0;
flag++;
flag2=0;
}
//如果檢查到單字字尾,且excuse中後一個字元不為字母,且match=1時,該excuse的單字計數+1
if( (keywords[w][flag2]=='\0') && (!isalpha(new_line[i][flag])) && (match==1) ){
count[i]++;
}
}
}
printf("Excuse Set #%d\n", excuse);
excuse++;
for(int i=0;i<E;i++){
if(count[i]>=max)max=count[i];
}
for(int i=0;i<E;i++){
if(count[i]==max)puts(line[i]);
}
//for(int i=0;i<E;i++)printf("%d ",count[i]);
printf("\n");
for(int i=0;i<30;i++)count[i]=0;
max=0;
}
return 0;
}
2014年9月13日星期六
[UVa] 409 - Excuses, Excuses!
訂閱:
發佈留言 (Atom)
-
因為先前寫UVa時,檔案名稱有時會花心思改,有時就直接把題目名稱加上.cpp就貼上了 導致現在有不同的格式出現 現在要處理的事情很簡單 1. 去除空白 2. 將底線 ( _ ) 換成dash ( - ) 經過一番查詢,終於發現最簡單的方法 - re...
-
文章出處: http://infbugs.blogspot.tw/2011/12/c_20.html 謝謝沙耶,解答了我長久以來對於 input/output 的疑惑。 C 語言入門 - 在線上批改系統練功 如何練習使用基本語法 自己出個練習題試著寫...
-
因為X205的架構非常獨特,Linux對其硬體的支援度非常弱(據說kernel4.0之後有所改善,這倒還需要研究一番),目前的進度是將Ubuntu系統塞進32Gb的固態碟中,並設定能自動抓取開機磁區,之後可能還要針對WIFI、音效、快捷鍵和讀卡機等週邊設備進行設定。 1...
沒有留言:
發佈留言