gpt4 book ai didi

c++ - 比较给定字符串上的元素

转载 作者:行者123 更新时间:2023-11-30 01:54:55 25 4
gpt4 key购买 nike

我的目标是如果至少有七个相同的字符,则在控制台上打印单词“YES”。这是我的代码,我不明白为什么它针对此输入运行:“1000000001”但它不适用于“00000001”或“100000001”。请帮忙。

#include <iostream>
#include <cstdio>

using namespace std;

string cad1;
int cont=1;

int main(){
cin >> cad1;

for(int i=1;i<cad1.length();i++){

if(cad1[i] == cad1[i-1]){
cont++;
}else{
cont=1;
}

}

if(cont >= 7){
cout << "YES" << endl;
}else{

cout << "NO" << endl;
}

cin.get();

}

最佳答案

你测试错了,你把这个值和前一个进行比较。所以这个字符串:

1    0    0    0    0    0    0    0    1

对此的评估:(F = false,T = true)

1    0    0    0    0    0    0    0    1
F T T T T T T F

每个TF都是对以上两个字符进行测试的结果。

数 T,有 6 个。您需要重新考虑您的测试。

像这样的一些代码可能会有所帮助:

char current = 0;
int length = 1;
bool foundSeven = false;
for(int i = 0; i < cad1.length(); i++) {
if(current == cad1[i]) {
length++;
} else {
length = 1;
}
current = cad1[i];
if(length == 7) {
foundSeven = true;
break;
}
}

关于c++ - 比较给定字符串上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com