题目描述
给定一个长度为 N 的仅包含小写英文字母的字符串 S。请判断是否可以将 S 分割为 2 个或更多连续的子字符串,并且这些子字符串按字典序严格递增排列。
更严格地说,判断是否存在一个字符串序列 t=(t1,t2,…,tk),满足以下所有条件:
- 序列长度 k 至少为 2。
- 每个 ti 都非空(1≤i≤k)。
- 按顺序连接 t1,t2,…,tk 恰好等于 S。
- 对于任意满足 1≤i<k 的整数 i,都有 ti 在字典序上严格小于 ti+1。
给定 T 组测试数据,请分别输出每组的答案。
什么是字典序?对于字符串 S=S1S2…S∣S∣ 和 T=T1T2…T∣T∣,若满足以下 1. 或 2.,则称 S 在字典序上小于 T。其中 ∣S∣,∣T∣ 分别表示 S,T 的长度。
- ∣S∣<∣T∣ 且 S1S2…S∣S∣=T1T2…T∣S∣。
- 存在整数 1≤i≤min{∣S∣,∣T∣},同时满足:
- S1S2…Si−1=T1T2…Ti−1
- Si 是按字母顺序小于 Ti 的字符。
输入格式
输入按以下格式从标准输入读入。
T
case1
case2
⋮
caseT
其中,第 i 个测试用例 casei 格式如下:
N S
输出格式
输出 T 行。
第 i 行输出第 i 个测试用例的答案。如果可以将 S 按要求分割,输出 Yes,否则输出 No。
样例 1
输入
5
4
abac
3
cac
2
ab
12
abababababab
5
edcba
输出
Yes
No
Yes
Yes
No
说明/提示
数据范围
- 1≤T≤2000
- 2≤N≤2000
- S 是长度为 N 的小写英文字母字符串
- 所有测试用例中 N 的总和不超过 2000
样例解释 1
第 1 个测试用例,可以将 S 分割为 a、ba、c。第 2 个测试用例,无论如何分割都无法使子串按字典序严格递增。
由 ChatGPT 4.1 翻译