100 atcoder#ABC217A. [ABC217A] Lexicographic Order

[ABC217A] Lexicographic Order

配点 : 100100

問題文

相異なる二つの文字列 S,TS, T が与えられます。 SSTT よりも辞書順で小さい場合は Yes を、大きい場合は No を出力してください。

辞書順とは?

辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、相異なる文字列 SS と文字列 TT の大小を判定するアルゴリズムを以下に説明します。

以下では「 SSii 文字目の文字」を SiS_i のように表します。また、 SSTT より辞書順で小さい場合は S<TS \lt T 、大きい場合は S>TS \gt T と表します。

  1. SSTT のうち長さが短い方の文字列の長さを LL とします。i=1,2,,Li=1,2,\dots,L に対して SiS_iTiT_i が一致するか調べます。
  2. SiTiS_i \neq T_i である ii が存在する場合、そのような ii のうち最小のものを jj とします。そして、SjS_jTjT_j を比較して、 SjS_j がアルファベット順で TjT_j より小さい場合は S<TS \lt T 、大きい場合は S>TS \gt T と決定して、アルゴリズムを終了します。
  3. SiTiS_i \neq T_i である ii が存在しない場合、 SSTT の長さを比較して、SSTT より短い場合は S<TS \lt T 、長い場合は S>TS \gt T と決定して、アルゴリズムを終了します。
なお、主要なプログラミング言語の多くでは、文字列の辞書順による比較は標準ライブラリに含まれる関数や演算子として実装されています。詳しくは各言語のリファレンスをご参照ください。

制約

  • S,TS, T は英小文字からなる長さ 11 以上 1010 以下の相異なる文字列である。

入力

入力は以下の形式で標準入力から与えられる。

SS TT

出力

SSTT より辞書順で小さい場合は Yes を、大きい場合は No を出力せよ。

abc atcoder
Yes

abcatcoder11 文字目が同じで 22 文字目が異なります。 アルファベットの bt よりもアルファベット順で先に来るので、 abc の方が atcoder よりも辞書順で小さいことがわかります。

arc agc
No
a aa
Yes