Thi đua đánh máy của giáo sư
Lý lịch
Thật không may, Giáo sư không thể sử dụng bàn phím của mình đúng cách: bất cứ khi nào anh ta có ý định sử dụng Shiftphím, anh ta nhấn Caps Lock một lần trước khi gõ và không bận tâm đến việc tự sửa. Nếu có hai hoặc nhiều khóa liên tiếp yêu cầu Shift, anh ta nhấn Caps Locktrước phím đầu tiên và không làm gì trước các phím khác.
Là thư ký của anh ấy, tôi muốn nhân rộng hiệu ứng này để mọi người nghĩ rằng anh ấy là người trả lời email của anh ấy chứ không phải tôi. Anh ta biết cách đánh máy của mình trông thật ngu ngốc, nhưng anh ta không quan tâm.
Bài tập
Viết chương trình lấy STDIN hoặc nhập tệp của một số văn bản, sau đó xuất văn bản đó như thể nó đã được Giáo sư gõ.
Đây là mã golf , và sơ hở tiêu chuẩn không được phép.
Bố trí bàn phím
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 , . /
Ví dụ đầu vào / đầu ra
( CapsLock
Dòng này chỉ dành cho sự hiểu biết của bạn và không nên xuất ra trong chương trình của bạn)
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
có thể là "điều chỉnh" để Hello
, HEllo
, HELlo
vv
Hello
chỉ là, như được xác định bởi trường hợp từ (hoặc quy tắc cố định của vỏ tiếng Anh chính xác)