मान लीजिए हमारे पास एक कीबोर्ड है, जो पारंपरिक 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