微笑等级(ニコニコレベル)
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
80M
Author:
Problem type
Allowed languages
C, C++
B - 微笑等级(ニコニコレベル)
题意
微笑字符串(ニコニコ文字列) 指的是由子串 25 重复若干次(可以是 0 次)拼接而成的字符串。
例如:25、252525、以及 空串 都是微笑字符串;而 123、225 不是。
给定一个字符串 S,它的 微笑等级 定义为:S 的所有连续子串中,长度最长且是"微笑字符串"的那个子串的长度。
例如:52525、25025、12151 的微笑等级分别为 4、2、0。
现在,给你一个只包含数字 0~9 和 ? 的字符串 T。你可以把每个 ? 替换成任意一个数字,从而得到一个仅由数字组成的字符串 T'。请你求出:在所有可能的 T' 中,微笑等级的最大值。
约束
- \(1 \le |T| \le 10^5\)
T的每个字符要么是数字0~9,要么是?
输入
从标准输入读取:
T
输出
输出一个整数:你能构造出的字符串 T' 的 最大微笑等级。
样例
样例 1
输入
12??567890
输出
4
说明:把前两个 ? 依次替换为 5 和 2,得到 1252567890。其中从第 2 位到第 5 位是 2525,长度为 4,所以可以得到微笑等级为 4 的字符串。
样例 2
输入
65?5?4?
输出
2
样例 3
输入
314159265358979
输出
0
说明:完全不存在子串 25 的情况下,微笑等级为 0。
样例 4
输入
2???5????
输出
8
样例 5
输入
52
输出
0
Comments