数字を書いている間、しばらくするとキーボードのShiftキーが押されてブロックされ、書いたものはすべて$%&
文字のようなものであることに気付きました。さらに悪いことに、私は英語とスペイン語のキーボードレイアウトを切り替えていたため、各番号にどのキーボードレイアウトを使用したかわかりません。
チャレンジ
記号文字を含む文字列が与えられたら、私が書いた数字を推測してみてください。キーボードをShift押すと、数字に対して次の文字が生成されます。
1234567890
----------
!"·$%&/()= Spanish layout
!@#$%^&*() English layout
- 入力は、上記の記号で構成されたnull以外の空でない文字列になります。
- 文字列からキーボードレイアウトを推測できる場合(つまり、文字列に
@
英語のレイアウトが含まれてい"
て、文字列にスペイン語のレイアウトが含まれている場合)、または番号が同じ場合、出力は単一の数字になります。両方のレイアウト(つまり、入力は両方のレイアウトに関して!$
変換さ14
れます); それ以外の場合、出力は推測できない場合と結果の数値が異なる場合、両方のレイアウトの2つの可能な数値になります。 - 入力文字列は常に単一のレイアウトで書き込まれます。したがって
"@
、入力として期待する必要はありません。
例
Input --> Output
------------------
/() 789 (Spanish layout detected by the use of /)
$%& 456,457 (Layout cannot be inferred)
!@# 123 (English layout detected by the use of @ and #)
()&! 8961,9071 (Layout cannot be inferred)
((·)) 88399 (Spanish layout detected by the use of ·)
!$ 14 (Layout cannot be inferred but the result is the same for both)
!!$$%% 114455 (Layout cannot be inferred but the result is the same for both)
==$" 0042/42 (Spanish layout, if a number starts with 0 you can choose to
omit them in the result or not)
Single character translations:
------------------------------
! 1
" 2
· 3
$ 4
% 5
& 6,7
/ 7
( 8,9
) 9,0
= 0
@ 2
# 3
^ 6
* 8
これはcode-golfなので、各言語の最短コードが勝つかもしれません!
·
はスペイン語には役に立たず、カタロニア語でのみ使用されます。
{(8, 9, 6, 1), (9, 0, 7, 1)}
(4番目のテストケースのような)出力は受け入れられますか?
·