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

जांचें कि क्या एक स्ट्रिंग सी ++ में एक और स्ट्रिंग तोड़ सकती है

मान लीजिए कि हमारे पास दो तार s1 और s2 हैं जिनका आकार समान है; हमें यह जांचना है कि क्या स्ट्रिंग s1 का कुछ क्रमपरिवर्तन स्ट्रिंग s2 के कुछ क्रमपरिवर्तन को तोड़ सकता है या इसके विपरीत। एक स्ट्रिंग a स्ट्रिंग b को तोड़ सकती है यदि x[i]>=y[i] (वर्णमाला क्रम में) सभी i के लिए 0 से n-1 तक।

इसलिए, यदि इनपुट s1 =abc और s2 =xy जैसा है, तो आउटपुट सत्य होगा। ऐसा इसलिए है क्योंकि "ayx" s2 का एक क्रमपरिवर्तन है जो "abc" स्ट्रिंग को तोड़ सकता है जो कि s1="abc" का क्रमपरिवर्तन है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • फ़ंक्शन चेक को परिभाषित करें (), इसमें s1, s2,

    लगेगा
  • इनिशियलाइज़ i :=0 के लिए, जब i

    • अगर s2[i]

      • झूठी वापसी

  • सही लौटें

  • मुख्य विधि से, निम्न कार्य करें -

  • सरणी s1 को सॉर्ट करें

  • सरणी s2 को सॉर्ट करें

  • f3 :=चेक(s2, s1)

  • f4 :=चेक(s1, s2)

  • सही लौटें या तो f3 सच है या f4 सच है, अन्यथा गलत है

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool check(string& s1, string& s2){
      for (int i = 0; i < s1.size(); i++) {
         if (s2[i] < s1[i])
            return false;
      }
      return true;
   }
   bool checkIfCanBreak(string s1, string s2) {
      sort(s1.begin(), s1.end());
      sort(s2.begin(), s2.end());
      bool f3 = check(s2, s1);
      bool f4 = check(s1, s2);
      return f3 || f4;
   }
};
main(){
   Solution ob;
   cout << (ob.checkIfCanBreak("abc", "xya"));
}

इनपुट

"abc", "xya"

आउटपुट

1

  1. जांचें कि स्ट्रिंग में स्विफ्ट में एक और स्ट्रिंग है या नहीं

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

  1. जाँच करें कि क्या एक बाइनरी ट्री C++ में किसी अन्य बाइनरी ट्री का सबट्री है

    मान लीजिए कि हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना होगा कि छोटा पेड़ दूसरे बाइनरी ट्री का सबट्री है या नहीं। गौर कीजिए कि ये दो पेड़ दिए गए हैं। दो पेड़ हैं। दूसरा वृक्ष पहले वाले का उपवृक्ष है। इस संपत्ति की जांच करने के लिए, हम पेड़ को पोस्ट-ऑर्डर फैशन में पार करेंगे, फिर यदि इस नोड के स

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

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