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

JavaScript में बाइनरी स्ट्रिंग में न्यूनतम फ्लिप ढूंढना

एकदिश रूप से बढ़ती स्ट्रिंग:

'0' और '1' की एक स्ट्रिंग एकदिश रूप से बढ़ती है यदि इसमें कुछ संख्या में '0' (संभवतः 0) होते हैं, उसके बाद कुछ संख्या में '1' (संभवतः 0 भी) होते हैं।

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो एक बाइनरी स्ट्रिंग, str, को पहला और एकमात्र तर्क के रूप में लेता है।

हम स्ट्रिंग में मौजूद किसी भी '0' को '1' में या किसी '1' को '0' में फ्लिप कर सकते हैं। हमारे फ़ंक्शन को S को एकदिश रूप से बढ़ती बनाने के लिए न्यूनतम फ्लिप की संख्या वापस करनी चाहिए।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

इनपुट

const str = '00110';

आउटपुट

const output = 1;

आउटपुट व्याख्या

क्योंकि यदि हम अंतिम '0' को '1' में फ्लिप करते हैं, तो हम '00111' स्ट्रिंग के साथ रह जाएंगे।

उदाहरण

const str = '00110';
const countFlips = (str = '') => {
  const map = {};
  const helper = (index, prev) => {
    map[index] = map[index] || {};
    if (map[index][prev] !== undefined) {
      return map[index][prev];
    }
    if (index >= str.length) {
      return 0;
    }
    if (prev === '0') {
      if (str[index] === '0') {
        map[index][prev] = Math.min(helper(index + 1, '0'), helper(index + 1, '1') + 1);
      } else {
        map[index][prev] = Math.min(helper(index + 1, '1'), helper(index + 1, '0') + 1);
      }
    } else if (str[index] === '0') {
      map[index][prev] = helper(index + 1, '1') + 1;
    } else {
      map[index][prev] = helper(index + 1, '1');
    }
    return map[index][prev];
  };
  return helper(0, '0');
};
console.log(countFlips(str));

आउटपुट

1
  1. - जावास्क्रिप्ट में स्ट्रिंग में सबसे लंबे स्वर उपस्ट्रिंग की लंबाई ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। हमारा फ़ंक्शन सबसे लंबे सन्निहित उपस्ट्रिंग की लंबाई लौटाएगा जिसमें केवल स्वर हों।उदाहरणनिम्न कोड देखें:const str = schooeal; const findLongestVowel = (str = ) => {    let cur = 0    let max = 0    

  1. - जावास्क्रिप्ट में दूसरी स्ट्रिंग में एक कैरेक्टर की सबसे लंबी लगातार उपस्थिति ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहली आर्गुमेंट के रूप में एक स्ट्रिंग और दूसरी आर्गुमेंट के रूप में एक अकेला कैरेक्टर लेता है। हमारा फ़ंक्शन स्ट्रिंग में उस कैरेक्टर की सबसे लंबी लगातार उपस्थिति को गिनकर लौटाएगा।उदाहरणनिम्न कोड देखें:const str = abcdaaadse; const char = a; const coun

  1. - जावास्क्रिप्ट में सम दशमलव मान वाली बाइनरी स्ट्रिंग को क्रमबद्ध करना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है जिसमें लंबाई 3 की बाइनरी स्ट्रिंग्स होती हैं जो सभी स्पेस से अलग होती हैं। हमारा फ़ंक्शन संख्याओं को आरोही क्रम में क्रमबद्ध करेगा लेकिन केवल सम संख्याओं को क्रमबद्ध करेगा और सभी विषम संख्याओं को उनकी जगह पर छोड़ देगा।उदाहरणनिम्न को