কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে শব্দ টাইপ করার সময় গণনা করা (অ্যালফাবেটিক্যালি কীবোর্ড)


মনে করুন, আমাদের একটি কীবোর্ড আছে যা ট্রেডিশনাল কোয়ার্টি (qwerty) টাইপ কী ম্যাপিং ব্যবহার না করে বরং ইংরেজি অ্যালফাবেটিক্যাল অর্ডার অনুযায়ী কী ম্যাপ করে অর্থাৎ abcde...।

সমস্যাটি সমাধান করার আগে আমাদের দুটি অনুমান করতে হবে —

  • বর্তমানে আমাদের আঙ্গুলের চুলকানিটি ইনডেক্স ০-তে আছে, অর্থাৎ 'a' কীতে
  • একটি কী থেকে অন্য কীতে যেতে লাগে তাদের ইনডেক্সের পরম পার্থক্য (absolute difference), উদাহরণস্বরূপ 'a' থেকে 'k'তে যেতে লাগবে |0 - 10| = ১০

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ইংরেজি ছোট হাতের অক্ষরের একটি স্ট্রিং গ্রহণ করবে এবং সে স্ট্রিংটি টাইপ করতে কত সময় লাগবে সেটি গণনা করে রিটার্ন করবে।

উদাহরণস্বরূপ —

ইনপুট স্ট্রিং যদি হয় —

const str = 'dab';

আউটপুট

const output = 7;

কারণ যেসব মুভমেন্ট (movement) হয়েছে —

'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

  1. জাভাস্ক্রিপ্ট TypeError: কারণ এবং সমাধান

  2. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  3. জাভাস্ক্রিপ্টে টাইপ কাস্টিং

  4. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য