CF1234F Yet Another Substring Reverse
题目描述
给定一个只包含前 $20$ 个小写拉丁字母('a','b',...,'t')的字符串 $s$。
回顾一下,字符串 $s[l; r]$ 表示字符串 $s$ 的子串,即 $s_l s_{l + 1} \dots s_r$。例如,"codeforces" 的子串有 "code"、"force"、"f"、"for",但没有 "coder" 和 "top"。
你最多可以进行一次如下操作:选择某个子串 $s[l; r]$ 并将其反转(即 $s_l s_{l + 1} \dots s_r$ 变为 $s_r s_{r - 1} \dots s_l$)。
你的目标是最大化 $s$ 中所有由不同(即唯一)字符组成的最长子串的长度。
如果一个字符串中没有任何字符重复出现,则称其由不同字符组成。例如,"abcde"、"arctg" 和 "minecraft" 都由不同字符组成,而 "codeforces"、"abacaba" 则不是。
输入格式
输入仅一行,包含一个字符串 $s$,只包含不超过 $10^6$ 个字符,字符范围为 'a' 到 't'(即前 $20$ 个小写拉丁字母)。
输出格式
输出一个整数,表示在最多反转一次子串后,$s$ 中所有由不同字符组成的最长子串的最大可能长度。
说明/提示
由 ChatGPT 4.1 翻译