কম্পিউটার

জাভাস্ক্রিপ্টে এলোমেলো নম্বর নাম থেকে সংখ্যা প্রস্তুত করা হচ্ছে


সমস্যা

ধরুন নিচের সংখ্যাটির নামের স্ট্রিং −

const str = 'TOWNE';

যদি আমরা এই স্ট্রিংটি পুনরায় সাজান, তাহলে আমরা এতে দুটি সংখ্যার নাম 2 (TWO) এবং 1 (ONE) খুঁজে পাব।

অতএব, আমরা 21

এর আউটপুট আশা করি

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি স্ট্রিং নেয় এবং স্ট্রিংটিতে উপস্থিত সংখ্যাগুলি ফেরত দেয়৷

উদাহরণ

নিম্নলিখিত কোড -

const str = 'TOWNE';
const findNumber = (str = '') => {
   function stringPermutations(str) {
      const res = [];
      if (str.length == 1) return [str];
      if (str.length == 2) return [str, str[1]+str[0]];
      str.split('').forEach((chr, ind, arr) => {
         let sub = [].concat(arr);
         sub.splice(ind, 1);
         stringPermutations(sub.join('')).forEach(function (perm) {
            res.push(chr+perm);
         });
      });
      return res;
   }
   const legend = {
      'ONE': 1, 'TWO': 2, 'THREE': 3, 'FOUR': 4,
      'FIVE': 5, 'SIX': 6, 'SEVEN': 7, 'EIGHT': 8,
      'NINE': 9, 'ZERO': 0
   };
   const keys = Object.keys(legend);
   const res = {};
   const resArr = [];
   let result = '';
   keys.forEach(key => {
      const match = stringPermutations(key).find(el => el.split('').every(char => str.includes(char)));
      if(match){
         const index = str.indexOf(match[0]);
         if(!res.hasOwnProperty(key)){
            res[key] = [index];
         }else if(!res[key].includes(index)){
            res[key].push(index);
         };
      };
   });
   Object.keys(res).forEach(word => {
      resArr.push([word, ...res[word]]);
   });
   resArr.sort((a, b) => a[1] - b[1]);
   resArr.forEach(sub => {
      result = result + String(legend[sub[0]]).repeat(sub.length - 1);
   });
   return +result;
};
console.log(findNumber(str));

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

21

  1. কিভাবে আমরা জাভাস্ক্রিপ্টে দশমিক সংখ্যা যাচাই করতে পারি?

  2. জাভাস্ক্রিপ্টের একটি সীমার মধ্যে আর্মস্ট্রং নম্বর

  3. জাভাস্ক্রিপ্টে এলোমেলো নম্বর নাম থেকে সংখ্যা প্রস্তুত করা হচ্ছে

  4. জাভাস্ক্রিপ্টে 1 থেকে n পর্যন্ত সমস্ত সংখ্যা দ্বারা বিভাজ্য সম্ভাব্য ক্ষুদ্রতম সংখ্যা