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

C++ में जांचें कि क्या एक स्ट्रिंग को दूसरी स्ट्रिंग को दो स्थान घुमाकर प्राप्त किया जा सकता है


मान लीजिए हमें दो स्ट्रिंग्स 'a' और 'b' दी गई हैं, कार्य यह ढूंढना है कि क्या हम स्ट्रिंग 'a' को ठीक दो स्थानों पर घुमाकर स्ट्रिंग 'b' प्राप्त कर सकते हैं, चाहे वह एंटीक्लॉकवाइज या क्लॉकवाइज दिशा में हो। उदाहरण के लिए,

इनपुट-1 -

a = google b = legoog

आउटपुट -

True

व्याख्या - स्ट्रिंग 'google' को एंटीक्लॉकवाइज दिशा में दो स्थानों पर घुमाया जा सकता है, जिसके परिणामस्वरूप स्ट्रिंग 'legoog' प्राप्त होती है। इस प्रकार, हम True लौटाते हैं।

इनपुट-2 -

a = tuorialst b = tutorials

आउटपुट -

False

व्याख्या - स्ट्रिंग 'tuorialst' को किसी भी दिशा में दो स्थानों पर घुमाकर दूसरी स्ट्रिंग 'tutorials' प्राप्त नहीं की जा सकती। इस प्रकार, हम False लौटाते हैं।

इस प्रॉब्लम को हल करने के लिए उपयोग किया गया दृष्टिकोण

दिए गए दो स्ट्रिंग्स के लिए, इस दृष्टिकोण में हमारे दो मामले हैं -

  • एंटीक्लॉकवाइज रोटेशन के लिए

  • क्लॉकवाइज रोटेशन के लिए

पहले, यदि दोनों स्ट्रिंग्स की लंबाई अलग है, तो false लौटाएं। अन्यथा, यदि दोनों स्ट्रिंग्स की लंबाई दो से कम या बराबर है, तो हम True लौटाएंगे।

अन्य मामलों में, हम जांचेंगे कि क्या स्ट्रिंग 'b' का सबस्ट्रिंग एंटीक्लॉकवाइज दिशा में दो स्थान घुमाकर स्ट्रिंग 'a' के बराबर है, तो हम True लौटाएंगे। अन्यथा, False।

इसी तरह, यदि स्ट्रिंग 'b' को क्लॉकवाइज दिशा में दो स्थान घुमाकर, यह स्ट्रिंग 'a' के बराबर हो जाती है, तो True लौटाएं, अन्यथा, हम false लौटाएंगे।

  • दो इनपुट स्ट्रिंग्स 'a' और 'b' लें

  • एक बूलियन फंक्शन checkRotated(string a, string b) दो स्ट्रिंग्स 'a' और 'b' लेता है, और लौटाता है कि क्या वे स्ट्रिंग 'b' को एंटीक्लॉकवाइज या क्लॉकवाइज दिशा में घुमाकर समान हैं।

  • स्ट्रिंग 'a' और स्ट्रिंग 'b' की लंबाई जांचें।

  • स्ट्रिंग 'b' का सबस्ट्रिंग ढूंढें जिसे एंटीक्लॉकवाइज दो स्थान घुमाया गया हो।

  • अब जांचें कि क्या परिणामी सबस्ट्रिंग स्ट्रिंग 'a' के बराबर है या नहीं और यदि बराबर है तो true लौटाएं।

  • स्ट्रिंग 'b' का सबस्ट्रिंग ढूंढें जिसे क्लॉकवाइज दिशा में दो स्थान घुमाया गया हो।

  • अब जांचें कि क्या परिणामी सबस्ट्रिंग स्ट्रिंग 'a' के बराबर है या नहीं और यदि बराबर है तो true लौटाएं।

  • यदि स्ट्रिंग्स समान नहीं हैं, तो false लौटाएं।

उदाहरण

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

bool checkRotated(string str1, string str2) {
    if (str1.length() != str2.length())
        return false;
    if (str1.length() <= 2 || str2.length() <= 2)
        return (str1 == str2);
    string s1 = str2.substr(str2.size() - 2, 2);
    string s2 = str2.substr(0, str2.size() - 2);
    string s3 = s1 + s2;
    if (s3 == str1)
        return true;
    string s4 = str2.substr(2, str2.size() - 2);
    string s5 = str2.substr(0, 2);
    string s6 = s4 + s5;
    if (s6 == str1)
        return true;
    return false;
}

int main() {
    string a = "google";
    string b = "legoog";
    cout << checkRotated(a, b) << endl;
    return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाएंगे, तो यह आउटपुट के रूप में प्रिंट करेगा,

1

चूंकि उपरोक्त कोड का आउटपुट "True" है, यह '1' प्रिंट करेगा।


  1. C++ में दो बाइनरी स्ट्रिंग्स को जोड़ें C++ में दो बाइनरी स्ट्रिंग्स को जोड़ें

    दो बाइनरी संख्या वाली स्ट्रिंग्स दी गई हैं, हमें उन दो बाइनरी स्ट्रिंग्स को जोड़कर प्राप्त परिणाम ढूंढना है और परिणाम को बाइनरी स्ट्रिंग के रूप में लौटाना है। बाइनरी संख्याएं वे संख्याएं हैं जिन्हें या तो 0 या 1 के रूप में व्यक्त किया जाता है। 2 बाइनरी संख्याओं को जोड़ते समय बाइनरी जोड़ का नियम हो

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

    समस्या विवरणमान लीजिए हमारे पास दो स्ट्रिंग्स a और b हैं, कार्य यह पता लगाना है कि क्या हम स्ट्रिंग a को वामावर्त या दक्षिणावर्त दिशा में ठीक 2 स्थान घुमाकर स्ट्रिंग b प्राप्त कर सकते हैं।उदाहरणइनपुट-1a = google b = legoogआउटपुटTrueव्याख्या - स्ट्रिंग google को वामावर्त दिशा में दो स्थान घुमाया जा स

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

    मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें यह जांचना है कि क्या हम t को किसी भी दिशा (बाएं या दाएं) में दो स्थान घुमाकर (rotate) s प्राप्त कर सकते हैं। उदाहरण के लिए, यदि इनपुट s = kolkata, t = takolka है, तो आउटपुट True होगा क्योंकि हम takolka को बाईं ओर दो बार घुमाकर kolkata प्राप्त कर सक