教授のタイピングをエミュレートする
バックグラウンド
残念ながら、教授はキーボードを適切に使用することができません。Shiftキーを使用するつもりのときはいつでも、入力する前にCaps Lock 1回押します。自分で訂正する必要はありません。が必要なキーが2つ以上連続している場合Shift、Caps Lock最初のキーの前に押し、他のキーの前には何もしません。
彼の秘書として、私はこの効果を再現して、私ではなく彼が彼の電子メールに返信するのは彼だと人々に思わせるようにしたいと思います。彼はタイピングが愚かに見えることを知っていますが、気にしません。
仕事
いくつかのテキストのSTDINまたはファイル入力を受け取り、そのテキストを教授が入力したかのように出力するプログラムを記述します。
これはコードゴルフであり、標準の抜け穴は許可されていません。
キーボード・レイアウト
Default:
` 1 2 3 4 5 6 7 8 9 0 - =
q w e r t y u i o p [ ]
a s d f g h j k l ; ' #
\ z x c v b n m , . /
With shift:
¬ ! " £ $ % ^ & * ( ) _ +
Q W E R T Y U I O P { }
A S D F G H J K L : @ ~
| Z X C V B N M < > ?
With caps lock:
` 1 2 3 4 5 6 7 8 9 0 - =
Q W E R T Y U I O P [ ]
A S D F G H J K L ; ' #
\ Z X C V B N M , . /
入力/出力の例
(このCapsLock
行は理解のためだけにあり、プログラムでは出力されません)
Input: abc ** def ! (ghijkl) mnop
Output: abc 88 DEF 1 9GHIJKL0 mnop
CapsLock: * * * * (* means Caps Lock was pressed before this character)
Input: print("Hello, World!"); sys.exit()
Output: print92HELLO, world120; SYS.EXIT90
CapsLock: * * * *
Input: !ABC!abc!ABC!abc!x!y!z
Output: 1ABC1ABC1abc1abc1X1y1Z
CapsLock: * * * * *
3
このタスクの反対の方がより興味深いと思います:)(つまり、誤ってタイプしたメールを修正するため)
—
オプティマイザ
@Optimizerあいまいすぎます。入力
—
Geobits
HELLO
可能性は、「修正」Hello
、HEllo
、HELlo
、など
しかし、
—
オプティマイザー
Hello
単語の大文字小文字の区別(または正しい英語の大文字小文字の固定規則)で定義されているように、正しいのは唯一です
@laurencevs正直なところ、私はそれを別の課題として考えたいと思います:)
—
Geobits
これはどんなブードゥーキーボードですか?
—
ブランドン