Dランク速解きセット】> 【早解16】アルファベットの穴の数 (paizaランク D 相当) [難易度: 1209 ±10]

※リンク先へ移動するためには[paiza]へのログインが必要です。

問題文

大文字のアルファベットには、囲われた部分があるものと、そうでないものがあります。

例えば、
・Aは上部の三角形の部分が囲われており、囲われた部分が1つ存在します。
・Bは上部と下部がそれぞれ囲われており、囲われた部分が2つ存在します。
・Cには囲われた部分は存在しません。

入力として、大文字のアルファベットが与えられるので、

その文字にある囲われた部分の数を出力してください。

ただし、囲われた部分の数は以下であるとします。
・0個 : C, E, F, G, H, I, J, K, L, M, N, S, T, U, V, W, X, Y, Z
・1個 : A, D, O, P, Q, R
・2個 : B

入力値(例)
D

出力値(例)
1

解答例

解説

in_array()という関数を使いました。
配列に指定した値が存在するか検索する関数です。

第一引数は検索する値、第二引数は検索対象の配列を渡します。

第二引数の配列の中から第一引数の値が存在するかを確認し、存在した場合は「true」が返され、存在しなかった場合は「false」が返されます。

第三引数はオプションで、boolean型のtrueを渡すことで、検索する値の型まで厳密にチェックできます。(strict=厳密)

デフォルトでは「false」が設定されているため、第三引数に「true」を渡さなければ型までチェックしない検索をします。

この解答例では、受け取った文字列をそれぞれ0個の$zero、1個の$one、2個の$twoと検索しています。そしてif()で「true」の値を出力するようにしました。

おすすめの記事
スポンサーリンク