前書き
QWERTYキーボードレイアウトを使用して、適度なペースで入力できます。しかし、yellowwooddoorのような単語に大量の文字が繰り返されている場合、入力するのに少し時間がかかります。さらに悪いのは、「ジャンプ」のような単語が、複数の異なる連続した文字に同じ指を使用している場合です。
以下は、各指に文字を入力するのにかかる時間です(非常に非科学的に測定されています)。
列は、指の名前、キーストローク/秒、秒/キーストローク、および各指で使用されるキーです
Typing same letter twice:
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'
Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923
CSV形式の同じデータ。
それはとります
.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2
2本の指を切り替える時間です。
チャレンジ
文字列を入力として、入力するのにどのくらい時間がかかりますか?
- 「タイマー」は、最初のキーが押された瞬間に開始し、最後のキーが押されたときに終了します。キーを押す間隔を数えているだけです。
- これはコードゴルフです。バイト単位の最短回答が優先されます。
- 提出は、完全なプログラムまたは関数のいずれかです。
- stdin / out、関数params、ファイルなど、好きなように入出力できます。
- 出力は少なくとも小数点以下第3位まで正確である必要があります(丸め誤差は+/- 0.001で問題ありません)。先頭の0。1未満の数値の場合、末尾の改行はオプションです。
- 入力は、az(小文字)、0-9、スペース、セミコロン、コンマ、ピリオド、およびアポストロフィを含む文字列になります。
- 私はいつも右手の親指でスペースをタイプします。
- 私は通常のタッチタイピングの指を使用します(指とキーのマッピングについては、上記の表もご覧ください)。
- テストケースの生成に使用される参照コード
テストケース
(空の文字列または任意の1文字の文字列)-0.000
aa
-0.192
fff
-0.364
fj
-0.123
the quick brown fox jumped over the lazy dog
-5.795
yellowwooddoor
-1.983
orangewooddoor
-1.841
jump on it, jump on it
-2.748
type on it, type on it
-2.549
abcdefghijklmnopqrstuvwxyz01234567890 ;,.'
-5.746
ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so.
-12.138
0
入力が空の場合や1文字の場合は出力する必要がありますか?