描述

给你一个只由字母'A''B'组成的字符串s,找一个最长的子串,要求这个子串里面'A''B'的数目相等,输出该子串的长度。

  • 这个子串可以为空。
  • s的长度n满足 2<=n<=1000000

样例

给定s="ABAAABBBA",返回8

解释:
子串 s[0,7] 和子串 s[1,8] 满足条件,长度为 8。

给定s="AAAAAA",返回0

解释:
s 中除了空字串,不存在 'A' 和 'B' 数目相等的子串。

Java 解法

public class Solution {/*** @param S: a String consists of a and b* @return: the longest of the longest string that meets the condition*/public int getAns(String S) {// Write your code hereint l = S.length();int[] numA = new int[l+1];int[] numB = new int[l+1];int a = 0, b = 0;for(int i = 0; i < l; i++) {if(S.charAt(i) == 'A') a++;else b++;numA[i+1] = a;numB[i+1] = b;}if(a == 0 || b == 0) return 0;int res = a > b? a : b;for(res *= 2; res > 0; res -= 2) {for(int i = res; i < l+1; i++) {if(numA[i] - numA[i-res]== numB[i] - numB[i-res]) {return res;}}}return 0;}
}

欢迎关注我的知乎专栏【数据池塘】,专注于分享机器学习、数据挖掘相关内容:https://zhuanlan.zhihu.com/datapool

⬇️ 扫描下方二维码关注公众号【数据池塘】 ⬇️

回复【算法】,获取最全面的机器学习算法网络图:

【LintCode】算法题 1443. 最长AB子串相关推荐

  1. 牛客题霸 [最长重复子串] C++题解/答案

    牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...

  2. 牛客题霸 [最长公共子串]C++题解/答案

    牛客题霸 [最长公共子串]C++题解/答案 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1 题解: lcs模板 代码: class Solut ...

  3. 天池 在线编程 最长AB子串(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给你一个只由字母'A'和'B'组成的字符串s,找一个最长的子串,要求这个子串里面'A'和'B'的数目相等,输出该子串的长度. 这个子串可以为空. s ...

  4. 第五十六题(最长公共子串)

    最长公共字串. 题目:假设字符串一的全部字符按其在字符串中的顺序出如今另外一个字符串二中, 则字符串一称之为字符串二的子串. 注意,并不要求子串(字符串一)的字符必须连续出如今字符串二中. 请编写一个 ...

  5. 【qduoj - 夏季学期创新题】最长公共子串(水题暴力枚举,不是LCS啊)

    题干: 描述 编写一个程序,求两个字符串的最长公共子串.输出两个字符串的长度,输出他们的最长公共子串及子串长度.如果有多个最长公共子串请输出在第一个字符串中先出现的那一个. 特别注意公共子串中可能包含 ...

  6. 算法题10 最长等差序列问题

    题目 给定一个大小为n的数组,要求写出一个算法,求其最长的等差数列的子序列 分析 该题需要分几种情况考虑. 1. 原数组是有序的,所要求的的子序列可以不连续. 对于数组arr[],不同的等差值d=1, ...

  7. 回文算法java实现_java算法题:最长回文串

    LeetCode: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如"Aa"不能当做一个回文字符串.注 意:假设字 ...

  8. lintcode 算法题 2316 · 判断三角形(Java 版)

    题目: 给定三个整数 a.b.c 代表三角形的三条边长,判断这三条边是否能组成一个三角形,当判断为是时,请通过 System.out.println 语句输出 Is a triangle,当判断为否时 ...

  9. 字节跳动2021年4月面试算法题库

    本文汇总了牛客2021.4.1~2021.4.30 面经考到的Leetcode题目 最终的高频题榜单数据可以在CodeTop题库(https://codetop.cc)查询,支持按部门.岗位分类筛选. ...

最新文章

  1. JQery遍历方法each
  2. 解决首次访问jenkins,输入默认密码之后,一直卡住问题
  3. 网络带宽和速度测试windows和linux iperf工具
  4. pr如何处理音效_Pr基础全通关:从0到1,进阶剪辑大神
  5. 关闭防火墙和selinux
  6. 一步一步学Silverlight 2系列(3):界面布局_转载
  7. 136. Single Number
  8. 一加到1亿。C语言_可能是今年最难选的2部手机:小米10详细对比一加8T
  9. property java用法_Java Properties getProperty(key)用法及代码示例
  10. 用JavaScript简单编程——基础篇
  11. popperjs V2 之应用库 tippy.js 源码阅读
  12. lammps+colvars计算PMF
  13. Nest+Vue实战:工作计划管理系统
  14. 智能点餐小程序有哪些基本功能
  15. 制作淘宝详情页时要注意哪些细节?
  16. SQL 如何去掉字段中千位的逗号(比如set @= '1,320.00' 想得到@= '1320.00' )
  17. 1.2 UI设计之基本布局
  18. 牛客网 HJ42 学英语
  19. 普元 AppServer 6.5 哑安装后执行启动命令./startup.sh后启动失败
  20. 人脸识别“SphereFace: Deep Hypersphere Embedding for Face Recognition”

热门文章

  1. 2021年福建高考成绩位次查询,2021年福建普通高考理科成绩一分一段表汇总(成绩排名查询)...
  2. 子程序与中断程序的异同_西门子200samrt高速计数器指令向导及程序
  3. argument type mismatch怎么解决_iPhone用户超10亿,iphone12隐藏优势终于被发现了_Type...
  4. oracle导出表统计信息,Oracle统计信息的导出与导入
  5. php foreach是什么,php foreach用法是什么
  6. Eclipse添加git插件上传项目到github
  7. 从输入URL到页面加载完成的过程中都发生了什么事情?
  8. 最常用的数据库脚本前十名
  9. iPhone SplitViewController
  10. 五一新闻回顾:XP SP3悄发布 微软雅虎终谈崩