[英]Taking input of a string
#include <bits/stdc++.h>
using namespace std;
string solve(string s){
cout << "inside solve";
for(int i=0; i<s.length(); i++){
int occur=0;
while(i+1 < s.length()){
if(s[i] == s[i+1])
occur++;
}
if(occur%2!=0 && occur%3!=0 && occur%5!=0)
return "no";
}
cout << "inside solve";
return "yes";
}
int main(){
ios_base::sync_with_stdio(0);
//cin.tie(0); cout.tie(0);
int tc;
cin >> tc;
//cout << tc;
while(tc--){
string s;
cin >> s;
//cout << "Inside main's while";
cout << solve(s);
}
return 0;
}
在我输入字符串后,在我的主要 function 中没有任何反应。 使用 cin >> s 有什么问题吗? 另外,当我取消注释 cin.tie(0); 行时 cout.tie(0); 它也不会进入 while 循环。 那么发生了什么?
你在这里有一个无限循环:
while(i+1 < s.length()){
if(s[i] == s[i+1])
occur++;
}
'i' 在 lopp 中没有被修改。 循环将永远运行。 条件始终为真。
使用第二个变量 k=i+1,将其放入 while 循环并将 s[i] 与 s[k++] 进行比较。
不要继续与这些所谓的“竞争方”合作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.