請大佬看看我這樣的代碼邏輯上有什么問題嗎?為什么就是沒法AC呢?


uj5u.com熱心網友回復:
樓主邏輯判斷設計太復雜,可以再精煉點。這里稍做修改,供參考:#include<stdio.h>
#include<ctype.h>
char b[1000001],d[1000001];//大陣列要放在函式體外
int main()
{
char a[20],c[20];
int n = 0,i,j=0,m=0,s,x=0,k=0;
gets(a);
gets(b);
for (i=0;a[i]!='\0';i++){
c[i] = tolower(a[i]);
}
c[i] = '\0'; //結束符
s=i;
for (i=0;b[i]!='\0';i++){
if (b[i]==' '){
d[i] = b[i];
continue;
}
d[i] = tolower(b[i]);
}
for (i=0;d[i]!='\0';i++){
if (d[i]==' '){k++; continue;}
if (x==1){
if (d[i+1]==' ') {
x=0;
//i++;
continue;
}
else
continue;
}
if (d[i]==c[j]){ //if (d[i]==c[i]){
j++;
x=0;
if (j>s)j=0; //對單詞長度判斷
}
else
{
j=0;
x=1;
}
if (d[i+1]==' '|| d[i+1]=='\0')
{
x=0;
if (j==s){
n++;
if (n==1)m=k;// m=i-j+1;
j=0;
//i++;
}
//else{
//i++;
// continue;
//}
}
}
if (n==0) printf("-1");
else
printf("%d %d\n",n,m);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269983.html
標籤:新手樂園
上一篇:求助
