题目-最长子串
描述
小M得到了一个由小写英文字符构成的字符串,她想从中挑选出一个美丽的子串。
一个字符串的子串是由其一段区间的字符所构成的字符串。
小M不喜欢重复,
所以她认为一个字符串是美丽的当且仅当它至多只包含Ca个字符’a’,Cb个字符’b’,…,Cz个字符’z’。
请你帮她找出一个最长的美丽的子串。
输入
第一行包含一个字符串s。1≤s的长度≤10^5
第二行包含26个整数表示0≤Ca,Cb……Cz≤10^9
输出
输出最长的美丽子串的长度。
Example
Input
aabaacaa
10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Output
5
题解
思路
- 遍历字符串,统计每个字符出现的个数,类似于滑动窗口
- 如果符合,就继续扩大右端
- 若不符合,就缩小左端
- 更新最大长度
- 时间复杂度 O(n)
1 |
|