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

C++ में स्ट्रिंग को दूसरी स्ट्रिंग में बदलने के लिए कैरेक्टर रिप्लेसमेंट जांचने का प्रोग्राम

समस्या विवरण

मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं। अब एक ऑपरेशन पर विचार करें जहां हम s में एक कैरेक्टर की सभी घटनाओं को दूसरे कैरेक्टर से बदलते हैं। यदि हम इस ऑपरेशन को कितनी भी बार कर सकते हैं, तो हमें जांचना है कि क्या s को t में बदला जा सकता है या नहीं।

उदाहरण के लिए, यदि इनपुट है s = "eye", t = "pip", तो आउटपुट True होगा, क्योंकि हम "e" को "p" से और फिर "y" को "i" से बदल सकते हैं।

हल करने का दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  1. एक मैप m1 और दूसरा मैप m2 परिभाषित करें
  2. n := s का आकार
  3. i := 0 से n-1 तक:
    • यदि s[i], m1 में है, तो:
      • यदि m1[s[i]] == t[i], तो अगले इटरेशन पर जाएं
      • false वापस करें
    • अन्यथा: m1[s[i]] := t[i]
  4. true वापस करें

उदाहरण

#include <bits/stdc++.h>
using namespace std;

bool solve(string s, string t) {
    unordered_map<char, char> m1, m2;
    int n = s.size();
    for (int i = 0; i < n; i++) {
        if (m1.count(s[i])) {
            if (m1[s[i]] == t[i]) continue;
            return false;
        } else {
            m1[s[i]] = t[i];
        }
    }
    return true;
}

int main() {
    string s = "eye", t = "pip";
    cout << solve(s, t);
}

इनपुट

"eye", "pip"

आउटपुट

1
  1. - पायथन में जांचें कि कोई स्ट्रिंग दूसरी स्ट्रिंग को बनाने के लिए दोहराई जा सकती है या नहीं

    मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें यह ढूंढना है कि स्ट्रिंग s को कितनी बार जोड़कर (concatenate) t उत्पन्न किया जा सकता है। यदि हम s का उपयोग करके t उत्पन्न नहीं कर सकते, तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट s = tom, t = tomtomtom है, तो आउटपुट 3 होगा क्योंकि हम tom को 3 बार जोड़कर

  1. - पायथन में दिए गए स्ट्रिंग कैरेक्टर से k पैलिंड्रोम बना सकते हैं या नहीं जांचने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s और एक अन्य संख्या k है, हमें जांचना है कि क्या हम s में सभी कैरेक्टर का उपयोग करके k पैलिंड्रोम बना सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट है s = amledavmel k = 2, तो आउटपुट True होगा, क्योंकि हम level और madam बना सकते हैं। इसे हल करने के लिए, हम निम्न चरणों क

  1. - पायथन में दी गई स्ट्रिंग के पैंग्राम होने की जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है, जो एक वाक्य को दर्शाती है, हमें जांचना है कि क्या अंग्रेजी वर्णमाला के प्रत्येक अक्षर का उपयोग कम से कम एक बार किया गया है या नहीं। उदाहरण के लिए, यदि इनपुट The grumpy wizards make toxic brew, for the evil queen and Jack है, तो आउटपुट True होगा। इसे हल करने के