Emulieren Sie die Eingabe des Professors
Hintergrund
Leider kann der Professor seine Tastatur nicht richtig benutzen: Wann immer er die ShiftTaste benutzen soll , drückt er Caps Lock einmal, bevor er tippt, und macht sich nicht die Mühe, sich selbst zu korrigieren. Wenn zwei oder mehr Tasten in einer Reihe erforderlich sind Shift, drückt er Caps Lockvor der ersten und tut nichts vor den anderen.
Als seine Sekretärin möchte ich diesen Effekt wiederholen, damit die Leute denken, dass er derjenige ist, der auf seine E-Mails antwortet, nicht ich. Er weiß, dass seine Eingabe dumm aussieht, aber es ist ihm egal.
Aufgabe
Schreiben Sie ein Programm, das STDIN oder eine Dateieingabe von Text übernimmt und diesen Text dann so ausgibt, als ob er vom Professor eingegeben worden wäre.
Dies ist Code Golf und Standardlücken sind nicht erlaubt.
Tastaturbelegung
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 , . /
Beispiel Eingabe / Ausgabe
(Die CapsLock
Zeile dient nur Ihrem Verständnis und sollte nicht in Ihrem Programm ausgegeben werden.)
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: * * * * *
HELLO
könnte „korrigiert“ zu Hello
, HEllo
, HELlo
etc.
Hello
nur, wie durch die Groß- und Kleinschreibung (oder feste Regeln für die korrekte englische Schreibweise) definiert