天池 在线编程 最长AB子串(哈希)
文章目录
- 1. 题目
- 2. 解题
1. 题目
描述
给你一个只由字母’A’和’B’组成的字符串s,找一个最长的子串,要求这个子串里面’A’和’B’的数目相等,输出该子串的长度。
这个子串可以为空。
s的长度n满足 2<=n<=1000000。示例
样例1
输入: s = "ABAAABBBA"
输出: 8
解释:
子串 s[0,7] 和子串 s[1,8] 满足条件,长度为 8。样例2
输入: s = "AAAAAA"
输出: 0
解释:
s 中除了空字串,不存在 'A' 和 'B' 数目相等的子串。
https://tianchi.aliyun.com/oj/496421179568411239/552131449257661029
2. 解题
- 遇到 A +1, 遇到 B -1,同时将没有出现过的值存入哈希,若哈希中存在某一值,则中间的AB个数相等
class Solution {public:/*** @param S: a String consists of a and b* @return: the longest of the longest string that meets the condition*/int getAns(string &s) {// Write your code hereunordered_map<int,int> m;m[0] = -1;int sum = 0, ans = 0;for(int i = 0; i < s.size(); ++i){if(s[i] =='A')sum++;elsesum--;if(m.find(sum) != m.end())ans = max(ans, i-m[sum]);elsem[sum] = i;}return ans;}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
天池 在线编程 最长AB子串(哈希)相关推荐
- 【组队学习】【34期】阿里云天池在线编程训练营
阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...
- 【LintCode】算法题 1443. 最长AB子串
描述 给你一个只由字母'A'和'B'组成的字符串s,找一个最长的子串,要求这个子串里面'A'和'B'的数目相等,输出该子串的长度. 这个子串可以为空. s的长度n满足 2<=n<=1000 ...
- 天池 在线编程 最频繁出现的子串(字符串哈希)
文章目录 1. 题目 2. 解题 1. 题目 给定一个字符串,我们想知道满足以下两个条件的子串最多出现了多少次: 子串的长度在之间 [minLength, maxLength] 子串的字符种类不超过 ...
- 天池 在线编程 回文子串(区间动态规划)
文章目录 1. 题目 2. 解题 1. 题目 描述 小明喜欢玩文字游戏,今天他希望在一个字符串的子串中找到回文串. 回文串是从左往右和从右往左读相同的字符串,例如121和tacocat.子串是一个字符 ...
- 天池 在线编程 删除字符(单调栈)
文章目录 1. 题目 2. 解题 1. 题目 描述 给定一个字符串str,现在要对该字符串进行删除操作, 保留字符串中的 k 个字符且相对位置不变,并且使它的字典序最小,返回这个子串. 示例 例1: ...
- 天池 在线编程 输入流
文章目录 1. 题目 2. 解题 1. 题目 描述 给出两个输入流 inputA 和 inputB(包含退格符), 如果两个输入流最后的结果相等,输出 YES,否则输出 NO. 输入字符只包括小写字母 ...
- 天池 在线编程 区间合并(字符串)
文章目录 1. 题目 2. 解题 1. 题目 描述 现在给你两个字符串区间(按字典顺序), 请你判断两个区间是否可以合并. 字符串区间[a, b),包括所有以a开头的字符串. 例如,区间[a, b)和 ...
- 天池 在线编程 双向取数(博弈DP)
文章目录 1. 题目 2. 解题 1. 题目 https://tianchi.aliyun.com/oj/245679029019779851/254275128279634585 有一个长度为n的数 ...
- 天池 在线编程 拿走瓶子(区间DP)
文章目录 1. 题目 2. 解题 1. 题目 描述 有n个瓶子排成一列,用arr表示. 你每次可以选择能够形成回文连续子串的瓶子拿走,剩下的瓶子拼接在一起. 返回你能拿走所有的瓶子的最小次数. n&l ...
最新文章
- 理解 Delphi 的类(十) - 深入方法[23] - 重载
- 自动化WiFI钓鱼工具——WiFiPhisher源码解读
- keras保存和载入模型继续训练
- Scala入门到精通——第七节:类和对象(二)
- 全志A33-USB虚拟网卡的配置与使用
- php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距
- xml模块、项目开发过程
- C++ tbb::atomic<bool> 声明、读取load、重新赋值store
- Codeforces-691C-Exponential notation(模拟)Java 以及输入的处理
- 论文查重:利用Python查找两个Word文件的相同内容
- mysql front新建数据库_简述MySQL-Front数据库的具体操作
- 操作系统——实时操作系统和分时操作系统
- Java英语单词(5000个)
- 二维码生成软件如何生成汉信码
- 微信没有回车键怎么换行_怎么换行-回答 | 为什么苹果的微信没有换行键,想换行怎么办?...
- java 四舍六入五成双_显示格式的四舍六入五成双
- 【Java中继承总结与练习 】
- 网易视频云:浅谈视频通信技术的发展
- java 获取指定日期下月的第一天
- 格凌科技浅谈数据中心的PUE值
热门文章
- python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法
- 苹果应用上架,图片的要求(2017年4月27日)
- c++远征之多态篇——异常处理
- kali linux 2.0 ssh,Kali 2.0使用SSH进行远程登录(示例代码)
- 以下题目需要当场编写实现,,答案自己写
- 最全android Demo
- 201671010144 2016-2017 《java程序设计》--对象与类!
- Android中的Handler的具体用法
- Oracle 多表 连接 顺序 与 性能关系 测试
- Python核心教程(第二版)读书笔记(三)