只关心目标字符 t 连续出现的段。把 s 里每一段连续的 t 长度记下来。
反转一个子串,只会在反转区间的两端把原来不相邻的字符接到一起。一次反转新接出来的连续段,最多是原来的两段 t。所以有至少两段时,答案是最长那段加上第二长那段;只有一段时反转不会更长,答案就是这一段;一段都没有就是 0。
给定一个只含小写字母的字符串 s 和一个目标字符 t。可以把 s 里任意一个连续子串反转,最多做一次,也可以一次都不做。反转之后,求字符 t 连续出现的最长长度。
第一行字符串 s。
第二行一个字符 t。
1≤∣s∣≤105
s 和 t 都只含小写字母,t 的长度是 1。
输出一个整数,表示最多一次反转之后,t 能连续出现的最长长度。s 里没有 t 时输出 0。
输入
aaabbbaa
a
输出
5
说明
原来最长的一段 a 长度是 3。把末尾的 bbbaa 反转成 aabbb,整个串变成 aaaaabbb,a 连续出现 5 次。串里一共只有 5 个 a,不可能更长。
输入
bbbb
a
输出
0
说明
串里没有目标字符 a,反转也不会变出 a。
输入
ababa
a
输出
2
说明
三段 a 都被隔开,长度都是 1。一次反转只能把其中两段接到一起,答案是 2,不能把三段都接成 3。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册