データセット選択メニュー】> 【商品の検索】STEP: 2 英小文字の出現率 (paizaランク C 相当) [難易度: 1361 ±17]

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

問題文

長さ N の文字列 S が与えられます。S に含まれている各文字の出現回数をそれぞれ求め、「a」の出現回数、「b」の出現回数、...、「z」の出現回数をこの順に半角スペース区切りで1行に出力してください。

入力値(例)
13
aaabbbccdddde

出力値(例)
3 3 2 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

解答例

解説

① $count()という配列にaからzまでのキーで0をセットします。

  array_fill_keys(keys, value)

出力

Array
(
[a] => 0
[b] => 0
[c] => 0
[d] => 0
[e] => 0
[f] => 0
[g] => 0
[h] => 0
[i] => 0
[j] => 0
[k] => 0
[l] => 0
[m] => 0
[n] => 0
[o] => 0
[p] => 0
[q] => 0
[r] => 0
[s] => 0
[t] => 0
[u] => 0
[v] => 0
[w] => 0
[x] => 0
[y] => 0
[z] => 0
)

② 入力値を受け取ります。

③ for()文で$i =0; $i < $n;回ループします。

配列の$countの$str[$i]($str[$i]は例えば$str[0]はa)、つまり$count[a]には+=1を足します。

④ implode()で配列$countを分割します。echoで出力します。

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