#4188. 字典序(Lexicographic Order)

字典序(Lexicographic Order)

题目描述

给定两个不同的字符串 SSTT
如果 SS 在字典序上小于 TT,输出 Yes;否则,输出 No

什么是字典序?

简单来说,字典序就是单词在字典中列出的顺序。更正式的定义如下,这里是一个算法来确定不同字符串 SSTT 之间的字典序:

在下面,我们用 SiS_i 表示 SS 的第 ii 个字符。此外,如果 SS 在字典序中小于 TT,我们将用 S<TS < T 表示;如果 SS 在字典序中大于 TT,我们将用 S>TS > T 表示。

  1. LLSSTT 长度中的较小值。对于每个 i=1,2,,Li=1,2,\dots,L,我们检查 SiS_iTiT_i 是否相同。

  2. 如果存在 ii 使得 SiTiS_i \neq T_i,令 jj 为最小的这样的 ii。然后,我们比较 SjS_jTjT_j。如果 SjS_j 在字母表中排在 TjT_j 之前,我们确定 S<TS < T 并退出;如果 SjS_j 在字母表中排在 TjT_j 之后,我们确定 S>TS > T 并退出。

  3. 如果不存在 ii 使得 SiTiS_i \neq T_i,我们比较 SSTT 的长度。如果 SSTT 短,我们确定 S<TS < T 并退出;如果 SSTT 长,我们确定 S>TS > T 并退出。

输入格式

输入SSTT

输出格式

如果 SS 在字典序上小于 TT,输出 Yes;否则,输出 No

样例

abc atcoder
Yes
arc agc
No
a aa
Yes

样例解释

【样例1说明】
abcatcoder 的第一个字符相同,但第二个字符不同。由于 b 在字母表中排在 t 之前,所以我们可以看出 abc 在字典序上小于 atcoder

数据范围

SSTT 是不同的字符串,每个字符串由小写英文字母组成,长度在1到10之间(包括1和10)。

来源

  • AtCoder ABC217A