Supposons que nous ayons un mot-clé, qui n'est pas un mappage de touches de type qwerty traditionnel, mais mappe simplement les touches selon l'ordre alphabétique anglais, c'est-à-dire abcde...
Avant d'approfondir le problème, nous avons fait les deux suivants hypothèses -
Actuellement, notre doigt est à l'index 0, c'est-à-dire la touche 'a'
Le temps qu'il faut pour passer d'une touche à une autre est la différence absolue de leurs index, par exemple. arriver à "k" sera |0 - 10| = 10
Nous devons écrire une fonction JavaScript qui accepte une chaîne de lettres minuscules anglaises et calcule et renvoie le temps nécessaire pour saisir la chaîne.
Par exemple -
Si la chaîne d'entrée est -
const str = 'dab';
const output = 7;
car le mouvement qui se produit est -
'a' -> 'd' = 3 'd' -> 'a' = 3 'a' -> 'b' = 1
Son code est -
Démo en direct
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));
Et le la sortie dans la console sera −
7
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!