将以下内容翻译为中文:最小化删除0子串以从循环二进制字符串中删除所有0的出现

2023年 8月 27日 62.0k 0

将以下内容翻译为中文:最小化删除0子串以从循环二进制字符串中删除所有0的出现

在这个问题中,我们需要从给定的二进制字符串中移除所有的零。同时,我们需要一次性移除连续的一对零,并计算移除的零对的总数。

We can solve the problem by counting the number of pairs of consecutive zeros in the given string. In this tutorial, we will learn two different solutions to solve the problem.

问题陈述 − 我们给出了一个长度为N的循环二进制字符串str。我们需要找到从字符串中移除所有零所需的最小连续零的数量。

示例示例

Input – str = "0011001"

登录后复制

Output – 2

登录后复制登录后复制

Explanation

我们可以一起删除str[0]和str[1]。之后,我们可以删除str[4]和str[5]。所以,我们需要删除2对连续的零。

Input – str = ‘0000000’

登录后复制

Output – 1

登录后复制

Explanation

我们可以一次性删除所有的零。

Input – str = ‘00110010’

登录后复制

Output – 2

登录后复制登录后复制

Explanation

We can remove str[0], str[1], and str[7] together as the binary string is circular. Next, we can remove str[5] and str[6] together.

Approach 1

在这种方法中,我们将找到给定字符串中连续零对的总数,这将回答给定的问题。

Algorithm

  • 步骤 1 - 将'cnt'变量初始化为零。

  • 第二步 - 将'isOne'变量初始化为false值,以跟踪给定字符串中的数字1。

  • 步骤 3 - 使用循环迭代字符串。在循环中,如果当前字符是 '0',则将 'cnt' 的值增加 1。

  • 步骤 4 − 使用 while 循环进行迭代,直到我们继续找到下一个字符为 '0',并将 'I' 的值增加 1。

  • 第五步 - 如果当前字符是'1',将'isOne'变量的值更改为true,表示字符串中至少包含一个'1'。

  • Step 6 − Once the iteration of the loop completes, If the value of ‘isOne’ is false, it means the string contains only zeros. Return 1 in such cases.

  • Step 7 − If the first and last characters are ‘0’, decrease the value of the ‘cnt’ by 1 as the string is circular.

  • Step 8 − Return the value of ‘cnt’.

Example

的中文翻译为:

示例

#include
using namespace std;
int countRemovels(string str, int N){
// to store the count of 0s
int cnt = 0;
bool isOne = false;

// Iterate over the string
for (int i = 0; i < N; i++){

// If the current character is 0, increment the count of 0s
if (str[i] == '0'){
cnt++;

// traverse the string until a 1 is found
while (str[i] == '0'){
i++;
}
}
else{

// If the current character is 1, then set isOne as true
isOne = true;
}
}

// If string contains only 0s, then return 1.
if (!isOne)
return 1;

// If the first and last character is 0, then decrement the count, as the string is circular.
if (str[0] == '0' && str[N - 1] == '0'){
cnt--;
}

// return cnt
return cnt;
}
int main(){
string str = "0011001";
int N = str.size();
cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论