けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 217 A - Lexicographic Order (灰色, 100 点)

辞書順という言葉は聞きなれないかもしれないが、ここでマスターしよう!

問題概要

文字列  S, T が与えられる。

 S T よりも辞書順で小さいならば "Yes" を出力し、そうでなければ "No" を出力せよ。

解法

辞書順とは、その名の通り「辞書に出てくる順」のことである。たとえば、

  • "alpha" は "beta" より小さい
  • "beta" は "theta" より小さい
  • "a" は "b" より小さい
  • "a" は "a" より小さい
  • "a" は "aa" より小さい
  • "alphabet" は "apple" より小さい
  • "ringo" は "zebra" より小さい

という感じだ。そして実は、多くのプログラミング言語で、辞書順の比較は単に if (S < T) などと、演算子「<」を用いて判定できる。S < T は、文字列 S が文字列 T よりも辞書順で小さいことを意味する。

今回の問題に戻ると、S < T のときは "Yes" を出力し、そうでないときは "No" を出力すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    string S, T;
    cin >> S >> T;
    if (S < T)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}