競技プログラミング用 知識集積所

ABC418A - I'm a teapot

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識


考え方

まずは入力内容を確認。
入力内容は整数と文字列なので、int型変数とstring型変数を用意してcinで受け取る。

最後が"tea"かどうかの判定は、細かく分解して考える。
つまり、入れられないものは、以下のいずれかに該当するものである。
  • そもそも3文字未満のもの
  • 後ろから3文字目、つまりn-3文字目が't'でないもの
  • 後ろから2文字目、つまりn-2文字目が'e'でないもの
  • 後ろから1文字目、つまりn-1文字目が'a'でないもの

あてはまる部分が1つでもあったらNoという部分は、if分岐の知識を使う。
最初に"Yes"を用意しておき、一つでもあてはまったら"No"にすることでうまく処理できる。
あるいは、全部を||でつないでもよい。

最後に、忘れずにcoutで出力しておしまい。

解答例


注意点

3文字ない場合の対応に注意。

nが1や2だった場合、n-3文字目は存在せず、範囲外アクセスで実行時エラーする。
そのため、最初に3文字以上あるかどうかを最初にチェックする必要がある。
詳しくはif分岐の「2つの条件をどちらもチェックしたい場合」参照。

別解

ends_with()を使う

指定文字列で終わるかどうかには、string型の.ends_with()が使える。
解答例
ウィキ募集バナー