假设我们有一个关键字,而不是传统的qwerty类型的键映射,而是仅根据英语字母顺序(即abcde)映射键。
在深入探讨问题之前,我们必须做以下两个假设-
目前,我们的指尖位于索引0,即键“ a”
从一个键移到另一个键所花费的时间是它们的索引的绝对差,例如,从“ a”移到“ k”所花费的时间将为| 0-10 |。= 10
我们需要编写一个JavaScript函数,该函数接受一串英文小写字母,并计算并返回输入该字符串所需的时间。
例如-
如果输入字符串是-
const str = 'dab';输出结果
const output = 7;
因为发生的运动是-
'a' -> 'd' = 3 'd' -> 'a' = 3 'a' -> 'b' = 1
为此的代码将是-
const str = 'dab'; const findTimeTaken = (str = '') => { let timeSpent = 0; const keyboard = 'abcdefghijklmnopqrstuvwxyz'; let curr = 'a'; for(let i = 0; i < str.length; i++){ const el = str[i]; const fromIndex = keyboard.indexOf(curr); const toIndex = keyboard.indexOf(el); const time = Math.abs(fromIndex - toIndex); curr = el; timeSpent += time; }; return timeSpent; }; console.log(findTimeTaken(str));输出结果
控制台中的输出将是-
7