#16914: 請問一下,為什麼第三個和第五個測資會TLE


easylin0126@gmail.com (林榮翼)


#include<stdio.h>
#include<string.h>
char a[500][10000];
int main(){
int i=0,j;
char *ptr,b[10000];
while(gets(b)!=NULL){
for(j=0;j<i;j++){
if(strcmp(b,a[j])==0){
printf("YES\n");
goto jump;
}
}
for(j=0;j<strlen(b);j++){
ptr=&b[j];
a[i][j]=*ptr;
ptr++;
}
printf("NO\n");
i++;
jump:;
}
}

#16918: Re:請問一下,為什麼第三個和第五個測資會TLE


asnewchien@gmail.com (david)


如果你每次都從頭找,時間會比較久。

 

假設我開 26 個陣列

第 1 個只存 A 開頭的 str

第 2 個只存 B 開頭的 str

 

遇到 A 開頭的字串就存到 A 使用的陣列

查字串的時候,也是到相對應的陣列找,

應該可以省些時間。

#16920: Re:請問一下,為什麼第三個和第五個測資會TLE


easylin0126@gmail.com (林榮翼)


如果你每次都從頭找,時間會比較久。

 

假設我開 26 個陣列

第 1 個只存 A 開頭的 str

第 2 個只存 B 開頭的 str

 

遇到 A 開頭的字串就存到 A 使用的陣列

查字串的時候,也是到相對應的陣列找,

應該可以省些時間。



謝謝你,我再試試看!!