90分求助

P1308 [NOIP2011 普及组] 统计单词数

@[Drewjin](/user/994007) 没必要这么长吧,我也没找出错,自己理解一下吧。 # AC代码 ```cpp #include<bits/stdc++.h> using namespace std; int main() { string a,b; int o,m=0,l=0,k; getline(cin,a);//输入一整行 getline(cin,b);//同上 for(int i=0;a[i]!='\0';i++)//这是本蒟蒻之前的代码,计算字符串长度,可以直接a.size(); { l++; } l--;//长度-- for(int i=0;b[i]!='\0';i++) { if(a[m]==b[i]||a[m]==b[i]-32||a[m]==b[i]+32)//特判,如果它们字母一致,但大小写不同,也要计入 { if(m==0) { if(i-1<0||b[i-1]==' ')//特判 m++;//计算目前有几个字符相同 } else { m++; } } else { m=0;//否则归零 } if(m==l+1&&b[i+1]==' '||m==l+1&&b[i+1]=='\0') { if(o==0) { k=i;//记录最先发现的相同字符位置 } o++;//数量++ m=0; } } if(o==0)//特判 { cout<<-1; } else { cout<<o<<" "<<k-l; } return 0; } ```
by oier04 @ 2023-08-28 00:09:06


@[Drewjin](/user/994007) 求关注QAQ
by oier04 @ 2023-08-28 00:10:17


@[oier04](/user/747109) 其实我真觉得我思路是对的,计算空格数量和之前的名字长度之和来得到位置,完全没问题,但是有点太绕了,就很难发现中间有什么bug 你的思路就很直接,比我好多了
by Drewjin @ 2023-08-28 21:09:49


@[Drewjin](/user/994007) 我也不太清楚
by oier04 @ 2023-08-28 21:15:13


|