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

स्ट्रिंग्स की संख्या जो C++ में एक हटाने के बाद दो स्ट्रिंग्स में से एक के बराबर हो जाती है

हमें दो अलग-अलग स्ट्रिंग्स के साथ दिया गया है, मान लें कि s1 और s2 और कार्य स्ट्रिंग बनाने के लिए है, आइए s1 और s2 के अद्वितीय अक्षरों को मिलाकर S कहते हैं और अब जांचें कि क्या स्ट्रिंग S से एक वर्ण को हटाने के बाद यह एक स्ट्रिंग बना रहा है जो स्ट्रिंग s1 या s2 के बराबर होगा।

उदाहरण के लिए

इनपुट - स्ट्रिंग S1 ="पूरा", स्ट्रिंग S2 ="मक्खन";

आउटपुट - एक हटाने के बाद दो स्ट्रिंग्स में से एक के बराबर बनने वाले स्ट्रिंग्स की संख्या हैं:1

स्पष्टीकरण - हमें स्ट्रिंग s1 और s2 के साथ दिया गया है और हम स्ट्रिंग S यानी 'मक्खन' से लेंगे और अब अगर हम स्ट्रिंग S से अक्षर 'b' को हटा दें तो यह 'अकथन' हो जाएगा जो स्ट्रिंग s1 के बराबर है इसलिए गिनती 1 है।

इनपुट - स्ट्रिंग S1 ="वसा", स्ट्रिंग S2 ="चूहा";

आउटपुट - एक हटाने के बाद दो स्ट्रिंग्स में से एक के बराबर बनने वाले स्ट्रिंग्स की संख्या हैं:2

स्पष्टीकरण - हमें स्ट्रिंग s1 और s2 के साथ दिया गया है और हम स्ट्रिंग S यानी 'फ्रैट' बनाएंगे और अब अगर हम स्ट्रिंग S से अक्षर 'rs' को हटा दें तो यह 'वसा' बन जाएगा जो स्ट्रिंग s1 के बराबर है और यदि हम अक्षर को हटाते हैं 'f' यह 'चूहा' बन जाएगा जो स्ट्रिंग s2 के बराबर है इसलिए गिनती 2 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • दो स्ट्रिंग्स s1 और s2 घोषित करें और स्ट्रिंग s1 के आकार की गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें।
  • एक चर गणना घोषित करें और इसे 2 के रूप में सेट करें क्योंकि अधिकतम आउटपुट जो संभव हो सकता है 2 है।
  • लूप ट्रैवर्सल के लिए दो अस्थायी चरों को प्रारंभ और अंत के रूप में घोषित करें।
  • 0 से एक स्ट्रिंग s1 के आकार तक के लिए लूप प्रारंभ करें और लूप के अंदर जांचें यदि s1[i] s2 के बराबर नहीं है, तो प्रारंभ को i और ब्रेक के रूप में सेट करें
  • एक और लूप शुरू करें I से स्ट्रिंग s1 के एक कम आकार तक और लूप के अंदर चेक करें कि IF s1 s2 के बराबर नहीं है, तो अंत को i और ब्रेक के रूप में सेट करें
  • जांचें कि अगर अंत का मान कम है तो शुरू करें फिर गिनती को 26 * (स्ट्रिंग s1 + 1 का आकार) और वापसी गणना के रूप में सेट करें।
  • ELSE यदि चेक प्रारंभ बराबर होता है, तो वापसी की गिनती होती है
  • ELSE, अंत तक +1 शुरू करने के लिए i से लूप शुरू करें और लूप के अंदर जांचें IF s1[i] s2[i-1] के बराबर नहीं है, फिर गिनती को 1 से घटाएं और तोड़ें
  • मैं से शुरू करने के लिए + 1 से अंत तक लूप शुरू करें और जांचें कि IF s1[i-1] s2 के बराबर नहीं है [i] फिर गिनती को 1 से घटाएं और तोड़ें
  • गिनती लौटाएं।
  • परिणाम प्रिंट करें।

उदाहरण

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

int equal_removal(string S1, string S2, int size_S1) {
   int count = 2;
   int start;
   int end;

   for (int i = 0; i < size_S1; ++i) {
      if (S1[i] != S2[i]) {
         start = i;
         break;
      }
   }
   for (int i = size_S1 - 1; i >= 0; i--) {
      if (S1[i] != S2[i]) {
         end = i;
         break;
      }
   }
   if (end < start) {
      count = 26 * (size_S1 + 1);
      return count;
   } else if (start == end) {
      return count;
   } else {
      for (int i = start + 1; i <= end; i++) {
         if (S1[i] != S2[i - 1]) {
            count--;
            break;
         }
      }
      for (int i = start + 1; i <= end; i++) {
         if (S1[i - 1] != S2[i]) {
            count--;
            break;
         }
      }
      return count;
   }
}
int main() {
   string S1 = "utter";
   string S2 = "butter";
   int size_S1 = S1.length();
   cout << "Count of strings that become equal to one of the two strings after one removal are: " << equal_removal(S1, S2, size_S1);
   return 0;
}

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

आउटपुट

Count of strings that become equal to one of the two strings after one removal are: 1

  1. C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या की गणना करें

    एक शतरंज की बिसात पर जिसे 8 X 8 ग्रिड के रूप में दर्शाया गया है, हमें पंक्ति और स्तंभ स्थिति के रूप में बिशप का स्थान दिया गया है। लक्ष्य उन वर्गों की कुल संख्या का पता लगाना है जो बिशप एक चाल में देख सकते हैं। हम जानते हैं कि बिशप सभी दिशाओं में घूम सकता है (तिरछे बाएँ ऊपर/नीचे और दाएँ ऊपर/नीचे)।

  1. C++ में N कटने के बाद वृत्त के टुकड़ों को गिनें

    हमें एक पूर्णांक N दिया गया है जो 2D-वृत्त पर लगाए गए कटों की संख्या को दर्शाता है। प्रत्येक वृत्त वृत्त को दो भागों में विभाजित करता है। लक्ष्य N कट के बाद वृत्त के टुकड़ों को खोजना है। टुकड़ों की संख्या =2 * नहीं। कटौती की आइए उदाहरणों से समझते हैं। इनपुट -एन=1 आउटपुट - सर्कल के टुकड़े:2 स्पष

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

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