不含重复字符的最长子串长度JAVA_字符串回文判断

不含重复字符的最长子串长度JAVA_字符串回文判断给你一个二进制字符串 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/168561.html原文链接:https://javaforall.net

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


相关推荐

  • mysql uniqueidentifier_Uniqueidentifier数据类型[通俗易懂]

    mysql uniqueidentifier_Uniqueidentifier数据类型[通俗易懂]一.Uniqueidentifier数据类型可存储16字节的二进制值Uniqueidentifier用来存储一个全局唯一标识符,即GUID。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值uniqueidentifier值通常不定义为常量。您可以按下列方式指定uniqueidentifier常量:字符串格式:’6F9619FF-8B86-D011-B42D-00C0…

    2022年9月8日
  • MySQL数据库免安装版配置教程及常见问题[通俗易懂]

    MySQL数据库免安装版配置教程及常见问题[通俗易懂]MySQL是一款安全、跨平台、高效的,并与PHP、Java等主流编程语言紧密结合的数据库系统。以下教程以windows1064位计算机为例(其他windows系统类似)01下载官方网站下载https://dev.mysql.com/downloads/mysql/根据自己的电脑配置选择对应版本.zip压缩包格式下载。无需登录,直接下载百度云快捷下载链接:https://pan.baidu.com/s/1hcEKFAQ6Fq7kFLG8x7SQCQ提取码:2bfg02配

    2022年7月20日
  • 宽度学习(Broad Learning System)

    宽度学习(Broad Learning System)宽度学习系统(BLS)一词的提出源于澳门大学科技学院院长陈俊龙于2018年1月发表的《BroadLearningSystem:AnEffectiveandEfficientIncrementalLearningSystemWithouttheNeedforDeepArchitecture》

    2022年5月22日
  • python win32api教程_python通过api获取数据

    python win32api教程_python通过api获取数据0x01Win32API简介Win32API即为Microsoft32位平台(包括:Windows9x,WindowsNT3.1/4.0/5.0,WindowsCE等)的应用程序编程接口(ApplicationProgrammingInterface),是构筑所有32位Windows平台的基石,所有在Win32平台上运行的应用程序都可以调用这些函数。使用Win32API,应用…

    2022年10月11日
  • 【mysql】锁详解

    【mysql】锁详解【mysql】锁详解

    2022年4月25日
  • TYVJ P1032 零用钱 Label:贪心

    TYVJ P1032 零用钱 Label:贪心

    2021年9月17日

发表回复

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

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