介绍
我可以使用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
是时候在两个手指之间切换了。
挑战
给定一个字符串作为输入,键入它需要多长时间?
- “计时器”从按下第一个键的时刻开始,到按下最后一个键的时刻结束。您只是在计算两次按键之间的时间。
- 这是代码高尔夫球。以字节为单位的最短答案将获胜。
- 提交可以是完整的程序或功能。
- 输入和输出任何您想要的方式,stdin / out,函数参数,文件都没有关系。
- 输出至少应精确到小数点后三位(对于四舍五入的误差,+ /-0.001即可)。小于0的数字前导0,尾随换行符可选。
- 输入将是一个包含(小写)az,0-9,空格,分号,逗号,句点和撇号的字符串。
- 我总是用右手拇指输入空格。
- 我使用普通的触摸打字手指(您也可以在上表中查看手指-按键映射)。
- 用于生成测试用例的参考代码
测试用例
(空字符串或任何一个字符的字符串)-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
如果输入为空或单个字符,是否需要输出?