20分,帮帮我

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

~~空格~~
by wangyuze123456 @ 2023-08-17 18:56:56


你这思路好像不对,应该是判断到第一次空格的时候把它压到一个新的字符串里面去,然后第二次判断到空格就对比要找的字符串并且开始下一轮的判断,如果一样就记录第一次的下标,然后++,不一样就清空之前压字符进去的字符串然后继续判断下一个,建议写do while。(第一个不用判断) @[SevenYoshy](/user/677842) 以上是具体思路(求一关,试验过此方法完全正确)
by liu_le_chen @ 2023-08-17 19:03:41


关后将奉上代码
by liu_le_chen @ 2023-08-17 19:04:22


啊,对不起,你就是这个思路
by liu_le_chen @ 2023-08-17 19:05:22


代码如下:(@[SevenYoshy](/user/677842) ) ``` #include<iostream> #include<string> using namespace std; int main(){ string a,s=""; //s为空 getline(cin,a); //改为cin string b; getline(cin,b); int c=0; int d[10000]; for(int i=0;i<b.size();i++){ if(b[i]>=65&&b[i]<=90)b[i]+=32; //这里97是小写字母a,大写Z的ascii码是90,改完后就不会RE } for(int i=0;i<a.size();i++){ if(a[i]>=65&&a[i]<=90)a[i]+=32; } //cout<<a<<endl<<b<<endl; for(int i=0;i<b.size();i++){ if(b[i]==' '){ //cout<<s<<endl<<a<<endl; if(s==a){ c++; d[c]=i-s.size(); //cout<<i<<endl; } s=""; continue; } s+=b[i]; } if(c>0){ cout<<c<<" "; cout<<d[1]; } else cout<<-1; return 0; } ```
by liu_le_chen @ 2023-08-17 19:08:40


感谢大佬帮助 我已奉上一关
by SevenYoshy @ 2023-08-22 09:37:27


|