检查二进制字符串在C ++中是否在0与1之间
在这里,我们将看到一个有趣的问题。我们必须检查一个字符串是否在1s之间有0。如果不是,则该字符串是有效的,否则无效。假设有三个字符串-
10001111010
00001111100
01111101111
在这三个字符串中,只有B有效,因为1s的流中没有0
为了解决这个问题,我们将找到字符串中第一个1的索引,并找到最后一个1的索引。然后我们将检查这两个索引中是否有0,如果是,则返回false,否则返回false。正确(有效)
示例
#include <iostream>
using namespace std;
bool hasZeroInOnes(string str) {
int first, last;
for(first = 0; first < str.length(); first++){
if(str[first] == '1')
break;
}
for(last = str.length() - 1; last >= 0; last--){
if(str[last] == '1')
break;
}
for(int i = first+1; i < last; i++){
if(str[i] == '0')
return false;
}
return true;
}
int main() {
string str = "00001111100";
if(hasZeroInOnes(str)){
cout << str << " is a valid string";
} else {
cout << str << " is NOT a valid string";
}
}输出结果
00001111100 is a valid string
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下