কম্পিউটার

জাভাস্ক্রিপ্টে n সংখ্যা মুছে ফেলার পরে সবচেয়ে ছোট সংখ্যা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি সংখ্যায় নেয়, আসুন তাদের যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসাবে m এবং n বলি।

আমাদের ফাংশনের কাজ হল m সংখ্যা থেকে n ডিজিট মুছে ফেলা যাতে m সংখ্যাটি n ডিজিট মুছে ফেলার পর সম্ভাব্য সবচেয়ে ছোট সংখ্যা হয়। এবং পরিশেষে, ফাংশনটি সংখ্যাগুলি মুছে ফেলার পরে m সংখ্যাটি ফেরত দেবে।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const m = '45456757';
const n = 3;

তারপর আউটপুট −

হওয়া উচিত
const output = '44557';

আউটপুট ব্যাখ্যা:

সম্ভাব্য ক্ষুদ্রতম সংখ্যা পেতে আমরা 5, 6 এবং 7 সংখ্যা সরিয়ে দিয়েছি।

উদাহরণ

এর জন্য কোড হবে −

const m = '45456757';
const n = 3;
const removeDigits = (m, n, stack = []) => {
   let arr = m.split('').map(Number);
   for(let el of arr){
      while (n && stack.length && el < stack[stack.length - 1]){
         stack.pop();
         --n;
      };
      stack.push(el);
   };
   let begin = stack.findIndex(el => el > 0);
   let end = stack.length - n;
   return (!stack.length || begin == -1 || begin == end) ? "0" : stack.slice(begin, end).join('').toString();
};
console.log(removeDigits(m, n));

কোড ব্যাখ্যা:

আমরা এখানে উত্তর প্রণয়নের জন্য একটি স্ট্যাক ব্যবহার করে একটি লোভী অ্যালগরিদম ব্যবহার করেছি। বাম থেকে ডানে ইনপুট স্ট্রিং সংখ্যার প্রতিটি মানের জন্য, আমরা স্ট্যাকের থেকে n পর্যন্ত মানগুলি সরিয়ে দেওয়ার পরে আমরা el-কে স্ট্যাকের দিকে ঠেলে দিই যা el-এর চেয়ে বড়৷

যেহেতু একটি সংখ্যার বাম-সর্বাধিক অবস্থানগুলি ডান-সর্বাধিক অবস্থানের চেয়ে বেশি মূল্যবান, এই লোভনীয় পদ্ধতিটি নিশ্চিত করে যে বাম-সর্বাধিক অবস্থানগুলি ক্ষুদ্রতম অঙ্কগুলির সমন্বয়ে গঠিত, এবং স্ট্যাকের মধ্যে যা কিছু অবশিষ্ট থাকে তা ডানদিকের সবচেয়ে বড় সংখ্যা- অধিকাংশ অবস্থান।

ইনপুট স্ট্রিং m প্রক্রিয়া করার পরে যদি অপসারণের জন্য অবশিষ্ট n সংখ্যা থাকে, তাহলে ডান-সবচেয়ে n সংখ্যাগুলি সরিয়ে ফেলুন, যেহেতু ডান-সবচেয়ে n সংখ্যাগুলি হল বৃহত্তম সংখ্যা৷

আউটপুট

এবং কনসোলে আউটপুট হবে −

44557

  1. জাভাস্ক্রিপ্টে একটি সংখ্যার সংখ্যা আলাদা করা

  2. ক্রমবর্ধমান সংখ্যা সহ রিটার্নিং সংখ্যা। জাভাস্ক্রিপ্টে

  3. জাভাস্ক্রিপ্টে তাদের প্রথম সংখ্যাগুলি বিনিময় করার পরে সংখ্যার পার্থক্য৷

  4. জাভাস্ক্রিপ্টে একটি সংখ্যার ফ্যাক্টরিয়াল সংখ্যা রিটার্নিং সংখ্যা