给你一个长度为 n 、下标从 0 开始的二进制字符串 target 。你自己有另一个长度为 n 的二进制字符串 s ,最初每一位上都是 0 。你想要让 s 和 target 相等。 在一步操作,你可以选择下标 i(0 <= i < n)并翻转在 闭区间 [i, n - 1] 内的所有位。翻转意味着 '0' 变为 '1' ,而 '1' 变为 '0' 。 返回使 s 与 target 相等需要的最少翻转次数。
时间: 2024-02-25 18:53:23 浏览: 35
好的,这是一个比较简单的题目。我们可以从字符串的最后一位开始,逐位比较 target 和 s 中对应位的值。如果不相等,我们就需要进行翻转操作,将 s 中对应位及之后的所有位都翻转一次。具体实现可以参考下面的代码:
```
int minFlips(string target) {
int n = target.size();
int cnt = 0;
char cur = '0';
for(int i = n - 1; i >= 0; i--) {
if(target[i] != cur) {
cnt++;
cur = cur == '0' ? '1' : '0';
}
}
return cnt;
}
```
我们从字符串的最后一位开始,对于每一位,如果它和当前的 cur 不相等,就需要进行翻转操作,并将 cur 取反。最后统计翻转的次数即可。
希望能够帮到你!
相关问题
将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串
可以使用字符串切片的方式来实现将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串。具体的代码如下:
```python
s = "abcdefg" # 原始字符串
m = 3 # 开始复制的位置
n = 4 # 复制的字符数
new_s = s[m-1:m+n-1] # 切片复制
print(new_s) # 输出复制后的字符串
```
输出结果为:
```
cdef
```
其中,`m-1`表示字符串下标从开始,需要将m转换为下标;`m+n-1`表示复制的结束位置,需要再减去1才能正确切片。
用数组输入一个字符串,下标从1开始,输出它的长度
没问题,请看以下代码:
```
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[101]; // 定义一个最大长度为100的字符数组
cin >> str + 1; // 从下标为1的位置接受输入
int len = strlen(str + 1); // 计算从下标为1的位置开始的字符串长度
cout << len << endl; // 输出长度
return 0;
}
```
注意,字符串的长度需使用strlen函数来计算,而不是用sizeof(str) / sizeof(char)。因为sizeof(str)得到的是数组的总大小,而不是字符串长度。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)