首页 > 其他分享 >最长平衡子字符串

最长平衡子字符串

时间:2023-11-09 12:00:43浏览次数:31  
标签:子串 int 复杂度 字符串 平衡 最长

题目概述:给定一字符串s(只由字符0和1组成),返回其平衡子串的最长的长度。所谓平衡子串就是指在该字串中所有的0都在1之前,且0的数量和1的数量相等
解题思路:由于数据范围比较小,所以直接暴力枚举所有子串,并判断是否为平衡子串更新答案即可。
时间复杂度:\(O(n^4)\)
代码

class Solution {
    public int findTheLongestBalancedSubstring(String s) {
        int res = 0;
        int n = s.length();
        for(int i = 0; i < n; i ++){
            for(int j = i + 1; j <= n; j ++){
                String substr = s.substring(i,j);
                System.out.println(substr);
                int count0 = 0;
                int count1 = 0;
                for(int k = 0; k < substr.length(); k ++){
                    if(substr.charAt(k) == '0')count0++;
                    else count1++;
                }

                if(count0 == count1 && check(substr))res = Math.max(res,substr.length());
            }
        }
        return res;
    }

    public boolean check(String str){
        for(int i = 0; i < str.length() / 2; i ++){
            if(str.charAt(i) == '1')return false;
        }
        return true;
    }
}

标签:子串,int,复杂度,字符串,平衡,最长
From: https://www.cnblogs.com/dengch/p/17819403.html

相关文章

  • 9.找到字符串中所有字母异位词
    题目概述:给定字符串s,p,找到s字符串子串中所有p的异位词,返回该字串的起始位置。异位词:由相同字母组成。解题思路:由于其给定了p,所以枚举s中和p长度相同的子串,并判断是否为p的异位词(将p和子串都进行排序处理,再使用equals判断)。需要注意的是java中的substring(i,j)方法,获取的是[i,j)......
  • 牛客[编程题] HJ26 字符串排序
    HJ26 字符串排序  中等  通过率:39.52%  时间限制:1秒  空间限制:32M 描述编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。如,输入:Type输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入......
  • 判断一个字符串是否为回文字符串
    #include<stdio.h>#include<stdbool.h>#include<string.h>boolis_palindrome(char*str){intlength=strlen(str);for(inti=0,j=length-1;i<j;i++,j--){if(str[i]!=str[j]){returnfalse;}}retu......
  • python json.loads()字符串转json
    python json.loads()字符串转jsonimportjsonimportrequestsres='''{"code":200,"message":"success","duration":147,"result":{"angle":0,"height":368,"tables":[],&qu......
  • java 字符串比较
    packagecom.elaina.test2;publicclassStringTest{publicstaticvoidmain(String[]args){//创建字符串Strings1=newString("abc");Strings2="abc";Strings3="Abc";//==号比......
  • java 创建字符串对象
    packagecom.elaina.test1;publicclassStringTest{publicstaticvoidmain(String[]args){//直接赋值Strings1="abc";System.out.println(s1);//使用new//空参构造,创建一个空白的字符串对象Strings2......
  • 2023-11-08:用go语言,字符串哈希原理和实现 比如p = 233, 也就是课上说的选择的质数进制
    2023-11-08:用go语言,字符串哈希原理和实现比如p=233,也就是课上说的选择的质数进制"31256..."01234hash[0]=3*p的0次方hash[1]=3*p的1次方+1*p的0次方hash[2]=3*p的2次方+1*p的1次方+2*p的0次方hash[3]=3*p的3次方+1*p的2次方+2*p......
  • java(字符串的反转)
    需求:键盘录入一个字符串,利用代码将字符串反转。importjava.util.Scanner;publicclassBoke{publicstaticvoidmain(String[]args){ScannerSc=newScanner(System.in);System.out.print("请输入一个字符串:");Stringx=Sc.next();......
  • 《java解惑》——续字符串之谜
    1.字符串替换:问题:下面这段程序把类全路经名中的"."替换为"/",代码如下:1.packagecom.javapuzzlers;2.3.publicclassTest{4.5.publicstaticvoidmain(String[]args){6.class.getName().replaceAll(".","/")+".class&......
  • JS 字符串操作
    JS字符串操作小结:concat()–将两个或多个字符的文本组合起来,返回一个新的字符串。 indexOf()–返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回-1。 charAt()–返回指定位置的字符。 lastIndexOf()–返回字符串中一个子串最后一处出现的索引,如果没有匹......