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

अनुक्रमणिका खोजें I जैसे कि S1 का उपसर्ग और S2 का प्रत्यय जब तक मैं C++ में संयोजित होने पर पैलिंड्रोम नहीं बनाता

अवधारणा

दिए गए दो स्ट्रिंग्स S1 और S2 की समान लंबाई के संबंध में, हमारा कार्य एक इंडेक्स i को इस तरह से निर्धारित करना है कि S1[0…i] और S2[i+1…n-1] एक साथ संयोजित होने पर एक पैलिंड्रोम दें। ऐसा देखा गया है कि यदि ऐसा सूचकांक निर्धारित करना संभव नहीं है तो -1 प्रिंट करें।

इनपुट

S1 = “pqrsu”, S2 = “wxyqp”

आउटपुट

1

S1[0..1] ="pq", S2[2..n-1] ="ypq"

S1 + S2 ="pqyqp" इंगित करता है कि एक पैलिंड्रोम है।

इनपुट

S1 = “pqrst”, S2 = “qprqz”

आउटपुट

-1

विधि

  • सबसे पहले, हम 0 से n (स्ट्रिंग की लंबाई) तक पुनरावृति करते हैं और ith वर्ण को S1 से दूसरी स्ट्रिंग में कॉपी करते हैं (मान लें कि यह S है)।
  • उसके बाद हम एक और अस्थायी स्ट्रिंग अस्थायी लेते हैं और S2 के वर्णों को इंडेक्स i +1 से n तक कॉपी करते हैं।
  • आखिरकार, हम सत्यापित करते हैं कि स्ट्रिंग (एस + अस्थायी) पैलिंड्रोम है या नहीं।

उदाहरण

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
// Shows function that returns true if s is palindrome
bool isPalindrome(string str){
   int i = 0;
   int b = str.length() - 1;
   while (i< b) {
      if (str[i] != str[b])
         return false;
      i++;
      b--;
   }
   return true;
}
// Shows function to return the required index
int getIndex1(string S1, string S2, int n){
   string S = "";
   for (int i = 0; i< n; a++) {
      // Used to copy the ith character in S
      S = S + S1[i];
      string temp = "";
      // Used to copy all the character of string s2 in Temp
      for (int b = i + 1; b < n; b++)
         temp += S2[b];
      // Verify whether the string is palindrome
      if (isPalindrome(S + temp)) {
         return i;
      }
   }
   return -1;
}
// Driver code
int main(){
   string S1 = "pqrsu", S2 = "wxyqp";
   int n = S1.length();
   cout << getIndex1(S1, S2, n);
   return 0;
}

आउटपुट

1

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए

  1. सी ++ प्रोग्राम एक शब्द को विभाजित करने के तरीकों की संख्या खोजने के लिए जैसे कि प्रत्येक शब्द एक पालिंड्रोम है

    यहां हम एक शब्द को विभाजित करने के तरीकों की संख्या को खोजने के लिए एक सी ++ प्रोग्राम पर चर्चा करेंगे ताकि प्रत्येक शब्द एक पालिंड्रोम हो। एल्गोरिदम Begin    Take the word as input.    Function partitionadd(vector<vector<string> > &u, string &s, vector<str

  1. अनुक्रमणिका खोजें I ऐसा है कि S1 का उपसर्ग और S2 का प्रत्यय जब तक कि मैं एक पैलिंड्रोम नहीं बनाता जब तक कि पायथन में संयोजित न हो जाए

    मान लीजिए कि हमारे पास समान लंबाई के दो स्ट्रिंग्स S1 और S2 हैं, हमें एक इंडेक्स i ढूंढना है जो S1[0…i] और S2[i+1…n-1] दे एक पैलिंड्रोम जब वे एक साथ सम्‍मिलित होते हैं। जब यह संभव न हो, तो -1 लौटें। इसलिए, यदि इनपुट S1 =pqrsu, S2 =wxyqp जैसा है, तो आउटपुट S1 [0..1] =pq, S2 [2..n-1] =ypq के रूप में