【paizaの森練習問題コンテスト3】過去問題3 > キーボードのシミュレーション (paizaランク C 相当) [難易度: 1609 ±37]
※リンク先へ移動するためには[paiza]へのログインが必要です。
あなたは、以下のようなキーボードのシミュレーションをするプログラムを作成したいと考えました。
・キーは a, b, ..., z と shift, capslock のみ
・a, b, ..., z キーと shiftキーを同時に押すと、対応する大文字が出力される
・capslockキーを押すと、再びcapslockキーが押されるまで大文字が出力される
キーボードで押されたキーが入力として与えられるので、
パソコンの画面に表示される文字列を出力してください。
入力値(例)
3
a
shift b
c
出力値(例)
aBc
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $n = trim(fgets(STDIN)); $caps = 0; for($i = 0; $i < $n; $i++) { $c = trim(fgets(STDIN)); if($c == "capslock") { $caps += 1; } elseif(strpos($c, "shift") !== FALSE) { list($shift, $x) = explode(" ", $c); echo strtoupper($x); } else { echo ($caps % 2 != 0) ? strtoupper($c) : $c; } } ?> |