मान लीजिए कि हमारे पास एक कीवर्ड है, जो पारंपरिक क्वर्टी टाइप की मैपिंग के बजाय, कीज़ को अंग्रेजी वर्णमाला के क्रम के अनुसार मैप करता है, यानी एबीसीडी...
इससे पहले कि हम समस्या में उतरें, हमें निम्नलिखित दो धारणाएँ बनानी होंगी -
-
वर्तमान में हमारी उंगलियों को इंडेक्स 0 पर रखा गया है, यानी कुंजी 'a
-
एक कुंजी से दूसरी कुंजी में जाने में लगने वाला समय उनके सूचकांक का पूर्ण अंतर है, उदाहरण के लिए 'a' से 'k' तक जाने में लगने वाला समय होगा |0 - 10| =10
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो अंग्रेजी लोअरकेस अक्षरों की एक स्ट्रिंग लेता है और स्ट्रिंग टाइप करने के लिए आवश्यक समय की गणना और रिटर्न देता है।
उदाहरण के लिए -
यदि इनपुट स्ट्रिंग है -
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