当且仅当char*
s包含n个连续相同符号的序列时,我希望有一个返回true的函数。例如,如果我们有"aaac"
和n=3
,我希望函数返回true。
我对代码的想法是:
bool g(char* s, int n){
if(s[0]==0) return true;
for (int i=0; s[i+1]!=0;i++){
for (int j=i; s[i+1]!=0;j++){
while(int a != n){
if(s[i]==s[i+j]){
a++;
}
}
}
}
}
int main() {
cout<< g("aaac",3);
}
我知道代码不完整但问题是我不知道我需要return true
在哪里以及return false
放在哪里。
请而不是对此问题进行投票请解释它有什么问题?
答案 0 :(得分:2)
你的功能不必要地复杂。您可以使用单个循环执行此操作,如下所示:
*s
和*(s+1)
n
,请返回true
。s
指向null终止符时,返回false
。检查差异可以这样做:
if (*(s+1) == *s) {
count++;
if (count == n) {
return true;
}
} else {
count = 0;
}