Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में n अंक हटाने के बाद सबसे छोटी संख्या

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो नंबर लेता है, आइए उन्हें क्रमशः पहले और दूसरे तर्क के रूप में m और n कहते हैं।

हमारे फ़ंक्शन का कार्य संख्या m से n अंकों को हटाना है ताकि n अंकों को हटाने के बाद संख्या m सबसे छोटी संभव संख्या हो। और अंत में, अंकों को हटाने के बाद फ़ंक्शन को संख्या 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));

कोड स्पष्टीकरण:

हमने यहां उत्तर तैयार करने के लिए एक स्टैक का उपयोग करके एक लालची एल्गोरिथ्म का उपयोग किया है। बाएँ से दाएँ इनपुट स्ट्रिंग संख्या के प्रत्येक मान el के लिए, हम el को स्टैक पर धकेलते हैं जब हम स्टैक से n मान तक हटा देते हैं जो el से अधिक होते हैं।

चूंकि किसी संख्या के बाएं-सबसे अधिक स्थान दाएं-सबसे अधिक पदों की तुलना में अधिक मूल्यवान होते हैं, यह लालची दृष्टिकोण सुनिश्चित करता है कि सबसे बाएं स्थान सबसे छोटे अंकों से बने होते हैं, और स्टैक में जो कुछ भी बचा है वह दाईं ओर सबसे बड़ा अंक है- अधिकांश पद।

इनपुट स्ट्रिंग m को संसाधित करने के बाद यदि कोई शेष n अंक निकालने के लिए हैं, तो दाएं-सबसे n अंक हटा दें, क्योंकि दाएं-सबसे n अंक सबसे बड़े अंक हैं।

आउटपुट

और कंसोल में आउटपुट होगा -

44557

  1. जावास्क्रिप्ट में किसी संख्या के अंकों को अलग करना

    हमें एक जावास्क्रिप्ट प्रोग्राम लिखना है जो उपयोगकर्ता को इनपुट प्रदान करता है। जब उपयोगकर्ता कुछ मूल्य इनपुट करता है और बटन दबाता है, तो हमारे फ़ंक्शन को यह जांचना चाहिए कि क्या इनपुट एक वैध संख्या है, यदि यह एक वैध संख्या है, तो प्रोग्राम को संख्या के सभी अंकों को अलग से स्क्रीन पर प्रिंट करना चाह

  1. जावास्क्रिप्ट में अपने पहले अंकों को बदलने के बाद संख्या अंतर

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो ठीक दो संख्याओं की एक सरणी लेता है। हमारे फ़ंक्शन को संख्याओं के पहले अंकों को आपस में बदलने के बाद उनके बीच पूर्ण अंतर लौटाना चाहिए। उदाहरण के लिए, सरणी के लिए [105, 413], अंतर होगा:|405 - 113| =292 उदाहरण निम्नलिखित कोड है - const arr = [105, 41

  1. जावास्क्रिप्ट में किसी संख्या के भाज्य में अंकों की वापसी संख्या

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहले और एकमात्र तर्क के रूप में एक संख्या, संख्या लेता है। हमारे फ़ंक्शन को संख्या संख्या के भाज्य में अंकों की संख्या की गणना और वापसी करनी चाहिए। उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है - इनपुट const num = 7; आउटपुट const output = 4; आउटपुट स