leetcode -1864. 构成交替字符串需要的最小交换次数[通俗易懂]

leetcode -1864. 构成交替字符串需要的最小交换次数[通俗易懂]给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = “111000”输出:1解释:交换位置 1 和 4:”111000″ -> “101010” ,字符串变为交替字符串。示例 2:输入:s =

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。

交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。

任意两个字符都可以进行交换,不必相邻 。

示例 1:

输入:s = "111000"
输出:1
解释:交换位置 1 和 4:"111000" -> "101010" ,字符串变为交替字符串。
示例 2:

输入:s = "010"
输出:0
解释:字符串已经是交替字符串了,不需要交换。
示例 3:

输入:s = "1110"
输出:-1
 

提示:

1 <= s.length <= 1000
s[i] 的值为 '0''1'
class Solution { 
   
public:
    int solve(int t,string &s){ 
   
        int st = t;
        int ans = 0;
        for(int i = t;i < s.size();i += 2){ 
   
            if(s[i] == '1')ans ++;
        }
        return ans;
    }
    int minSwaps(string s) { 
   
        int numl = 0,numy = 0;
        for(int i = 0;i < s.size();i ++){ 
   
            if(s[i] == '0')numl ++;
            else numy ++;
        }
        int ans = 0x3f3f3f3f;
        int n = s.size();
        if(n % 2){ 
   
            if(abs(numl - numy) != 1)return -1;
            else if(numl > numy){ 
   
                return solve(0,s);
            }
            else return solve(1,s);
        }
        else{ 
   
            if(numy != numl)return -1;
            ans = min(solve(0,s),solve(1,s));
            return ans;
        }
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 运算符优先级

    Python 运算符优先级

    2021年10月28日
    44
  • mysql自定义函数详解_sql自定义函数例子

    mysql自定义函数详解_sql自定义函数例子摘要腾兴网为您分享:mysql自定义函数与动态查询,智学网,夜读小说,小睡眠,西餐菜谱等软件知识,以及猫语翻译器,江西校讯通,刷qq业务的网站,房洽洽,学士服照,爱站seo工具包,虚拟声卡驱动,隐藏分,卦象,供零在线永辉,七猫精品小说,海纳百川器,华尔街日报,双十一图片,中国地震信息网等软件it资讯,欢迎关注腾兴网。介绍下mysql自定义函数的例子,以及插入单引号的方法,动态执行查询与字符串拼接…

    2025年10月7日
    3
  • pycharm安装opencv2_python opencv 教程

    pycharm安装opencv2_python opencv 教程上一篇博文已经安装了Anaconda3和tensorflow,这次来安装pycharm和opencv3.4.0一、安装pycharm1、pycharm下载地址 直接下载Community版,免费和开源。以后不够用时,再想办法再说吧。2、一路点下去即可。3、有一个选择让我疑惑,记录下:选择"64位安装"(根据自己的系统来选择),并勾上“.py”二、安装opencv1、python的opencv库下…

    2022年8月28日
    3
  • 基于yolov4的目标检测_yolov3目标检测

    基于yolov4的目标检测_yolov3目标检测1项目的克隆和必要的环境依赖1.1项目的克隆YOLOv5的代码是开源的,因此我们可以从github上克隆其源码。不得不说GitHub的确是全球最大的男性交友网站,里面的人个个都是人才,yolov5发布才一年左右的时间,YOLOv5就已经更新了5个分支了,分别是yolov5.1-yolov5.5分支。该项目就是利用的yolov5.5分支来作为讲解。首先打开yolov5的github的https://github.com/ultralytics/yolov5/tree…

    2022年10月16日
    2
  • cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好

    cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好正常情况下CD4/CD8比值介于1.5—2.5之间,如CD4是每微升血750个,CD8是每微升血460个,这样两者的比值就是1.63。虽然95%的正常人CD4/CD8的比值都在1以上,但是也有一些正

    2022年8月1日
    5
  • java程序设计实验报告_C++程序设计题解与实验指导

    java程序设计实验报告_C++程序设计题解与实验指导前言一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法。而httprunner支持用例之间

    2022年7月31日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号