#AT1893. A - Lexicographic Order
A - Lexicographic Order
A - 字典序排序
得分:100 分
题目描述
给定两个不同的字符串 $S$ 和 $T$。
如果 $S$ 字典序小于 $T$,输出 Yes
;否则,输出 No
。
什么是字典序排序?
简单来说,字典序排序就是按照字典中的顺序进行排序。下面是定义两个不同字符串 $S$ 和 $T$ 的字典序排序的算法。
在下面的算法中,用 $S_i$ 表示 $S$ 的第 $i$ 个字符。如果 $S$ 字典序小于 $T$,我们用 $S \lt T$ 表示这个事实;如果 $S$ 字典序大于 $T$,我们用 $S \gt T$ 表示这个事实。
- 令 $L$ 是 $S$ 和 $T$ 的长度中较小的那一个。对于每个 $i=1,2,\dots,L$,我们检查 $S_i$ 和 $T_i$ 是否相同。
- 如果存在一个 $i$ 使得 $S_i \neq T_i$,我们令 $j$ 是最小的这样的 $i$。然后,我们将比较 $S_j$ 和 $T_j$。如果 $S_j$ 在字母表顺序中出现在 $T_j$ 之前,我们确定 $S \lt T$ 并退出;如果 $S_j$ 在字母表顺序中出现在 $T_j$ 之后,我们确定 $S \gt T$ 并退出。
- 如果不存在一个 $i$ 使得 $S_i \neq T_i$,我们比较 $S$ 和 $T$ 的长度。如果 $S$ 的长度小于 $T$ 的长度,我们确定 $S \lt T$ 并退出;如果 $S$ 的长度大于 $T$ 的长度,我们确定 $S \gt T$ 并退出。
需要注意的是,许多主要的编程语言在标准库中实现了字符串的字典序比较操作符或函数。更多细节请参考你所使用的编程语言的参考文档。
约束条件
- $S$ 和 $T$ 是不同的字符串,每个字符串只包含小写英文字母,且长度在 $1$ 到 $10$ 之间(包含边界)。
输入
从标准输入读入数据,输入格式如下:
输出
如果 $S$ 字典序小于 $T$,输出 Yes
;否则,输出 No
。
abc atcoder
Yes
abc
和 atcoder
的首个字符相同,但第二个字符不同。由于 b
在字母表顺序中出现在 t
之前,所以我们可以看出 abc
字典序小于 atcoder
。
arc agc
No
a aa
Yes