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

JavaScript में n अंक हटाने के बाद सबसे छोटी संख्या


समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो दो संख्याएं लेता है, मान लीजिए उन्हें 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));

कोड व्याख्या:

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

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

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

आउटपुट

कंसोल में आउटपुट होगा:

44557
  1. JavaScript में संख्या के अंकों को अलग करना JavaScript में संख्या के अंकों को अलग करना

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

  1. - JavaScript में पहले अंकों को इंटरचेंज करने के बाद संख्याओं का अंतर

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो ठीक दो नंबर्स का एक ऐरे लेता है। हमारा फ़ंक्शन उनके पहले अंकों को इंटरचेंज करने के बाद संख्याओं के बीच निरपेक्ष अंतर लौटाना चाहिए। उदाहरण के लिए, ऐरे [105, 413] के लिए, अंतर होगा: |405 - 113| = 292उदाहरणनिम्नलिखित कोड है − { arr = arr.map(String); c

  1. - JavaScript में संख्या के फैक्टोरियल में अंकों की संख्या वापस करना

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