https://developer.aliyun.com/article/1417518

简介: https://developer.aliyun.com/article/1417518

题目

题目链接

给你一个长度为 n 、下标从 0 开始的二进制字符串 target 。你自己有另一个长度为 n 的二进制字符串 s ,最初每一位上都是 0 。你想要让 s 和 target 相等。

在一步操作,你可以选择下标 i(0 <= i < n)并翻转在 闭区间 [i, n - 1] 内的所有位。翻转意味着 ‘0’ 变为 ‘1’ ,而 ‘1’ 变为 ‘0’ 。

返回使 s 与 target 相等需要的最少翻转次数。

示例 1:

输入:target = "10111"
输出:3
解释:最初,s = "00000" 。
选择下标 i = 2: "00000" -> "00111"
选择下标 i = 0: "00111" -> "11000"
选择下标 i = 1: "11000" -> "10111"
要达成目标,需要至少 3 次翻转。

示例 2:

输入:target = "101"
输出:3
解释:最初,s = "000" 。
选择下标 i = 0: "000" -> "111"
选择下标 i = 1: "111" -> "100"
选择下标 i = 2: "100" -> "101"
要达成目标,需要至少 3 次翻转。

示例 3:

输入:target = "00000"
输出:0
解释:由于 s 已经等于目标,所以不需要任何操作

解题

方法一:模拟

从左到右开始翻

c为遍历到当前位的目标字符,flag为当前这个位的目前的字符。

从左到右,每翻一次,后面的也要翻转,因此flag也会同步翻。

class Solution {
public:
    int minFlips(string target) {
        int flag=0;
        int res=0;
        for(char c:target){
            if(c=='1'&&flag==0){
                res++;
                flag=1;
            }
            else if(c=='0'&&flag==1){
                res++;
                flag=0;
            }
        }
        return res;
    }
};
相关文章
|
8月前
https://blog.csdn.net/njpkhuan/article/details/100563673?spm=1001.2014.3001.5502
https://blog.csdn.net/njpkhuan/article/details/100563673?spm=1001.2014.3001.5502
|
2月前
|
C++
【C/C++ 编程 入门篇】 if条件判断表达式的使用教程
https://developer.aliyun.com/article/1465430
20 0
|
12天前
|
Java Unix Linux
https://developer.aliyun.com/article/1495767
https://developer.aliyun.com/article/1495767
|
2月前
|
JSON 前端开发 数据格式
https://tigerhhzz.blog.csdn.net/article/details/129961946?spm=1001.2014.3001.5502
https://tigerhhzz.blog.csdn.net/article/details/129961946?spm=1001.2014.3001.5502
11 0
|
4月前
|
XML Java 数据格式
javaweb实训第五天下午——xml配置文件约束报错问题
问题描述: 如果电脑连不上网,或者网速不好可能会造成Spring框架中xml配置文件出现错误。但是这个错误不影响项目的运行的;
20 0
|
5月前
|
存储 缓存 算法
计算机原理组成篇 (2)
主存-辅存层次 原理:局部性原理 实现:主存之外增加辅助存储器(磁盘、SD卡、U盘等) 目的:解决主存容量不足的问题
97 0
|
9月前
|
Serverless
7-9 拯救外星人
你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“5+7”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。
137 0
|
12月前
|
Java API Spring
https://developer.aliyun.com/article/1224754
https://developer.aliyun.com/article/1224754
72 0
|
JavaScript
https://developer.aliyun.com/article/1192111
我写了两个函数一个是数字类型的函数,另一个是字符串类型的函数,其实就是类型不同,实现的功能是一样的,这时候我们就可以使用泛型来优化
524 0
https://developer.aliyun.com/article/1192111
|
2月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
177 0