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

C++ में स्ट्रिंग्स के दिए गए सरणी में विपर्यय के सभी जोड़े प्रिंट करें


इस समस्या में, हमें स्ट्रिंग्स की एक सरणी दी जाती है और हमें उस दिए गए ऐरे के एनाग्राम के सभी जोड़े प्रिंट करने होते हैं।

एनाग्राम वे तार हैं जो किसी अन्य स्ट्रिंग के चरित्र को पुनर्व्यवस्थित करके बनते हैं। जैसे - हैलो और लोल्हे

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

Input: array = {“hello”, “hrdef”, “from”, “lohel”, “morf”}.
Output: [hello, lohel] , [from , morf]

इस समस्या को हल करने के लिए, हम लूप्स के नेस्टिंग का उपयोग करेंगे। हमें दो नेस्टेड लूप चाहिए, बाहरी लूप सरणी के ऊपर से गुजरेगा और तत्वों का चयन करेगा। नेस्टेड लूप प्रत्येक स्ट्रिंग की जांच करेगा और जांच करेगा कि वे विपर्यय हैं या नहीं।

उदाहरण

आइए उस एल्गोरिथम को लागू करने के लिए प्रोग्राम देखें -

#include <iostream>
using namespace std;
#define NO_OF_CHARS 256
bool isAnagramString(string str1, string str2){
   int count[NO_OF_CHARS] = {0};
   int i;
   for (i = 0; str1[i] && str2[i]; i++){
      count[str1[i]]++;
      count[str2[i]]--;
   }
   if (str1[i] || str2[i])
      return false;
   for (i = 0; i < NO_OF_CHARS; i++)
      if (count[i])
         return false;
      return true;
}
void printAnagrams(string arr[], int n){
   for (int i = 0; i < n; i++)
      for (int j = i+1; j < n; j++)
         if (isAnagramString(arr[i], arr[j]))
            cout<<arr[i]<<" and "<<arr[j]<<" are anagrams.\n";
}
int main(){
   string arr[] = {"hello", "hrdef", "from", "lohel", "morf"};
   int n = sizeof(arr)/sizeof(arr[0]);
   printAnagrams(arr, n);
   return 0;
}

आउटपुट

hello and lohel are anagrams.
from and morf are anagrams.

यह समाधान समझने में काफी आसान है लेकिन कम कुशल है। तो कुछ अनुकूलन हो सकते हैं जो इसे और अधिक प्रभावी बनाने के लिए हमारे समाधानों में किए जा सकते हैं। हम इसे अपने सरणी को सॉर्ट करके कर सकते हैं जिसमें एक स्ट्रिंग है। यह क्रमबद्ध सरणी विपर्यय को आसान बना देगी।


  1. C++ में एक स्ट्रिंग के सभी पैलिंड्रोम क्रमपरिवर्तन प्रिंट करें

    इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें उन सभी पैलिंड्रोमिक क्रमपरिवर्तनों को प्रिंट करना होता है जो उस स्ट्रिंग के वर्णों से संभव होते हैं। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं - इनपुट − स्ट्रिंग =आब आउटपुट - अब्बा बाबा इस समस्या को हल करने के लिए हमें स्ट्रिंग के वर्णों को

  1. किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को C++ में प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या वर्णों की एक सरणी दी जाएगी। हमारा काम उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करना है। उदाहरण #include<bits/stdc++.h> using namespace std; //prin

  1. C++ में स्ट्रिंग्स का ऐरे

    स्ट्रिंग कीवर्ड का उपयोग करके C++ में स्ट्रिंग्स की सरणी बनाई जा सकती है। यहां हम इस दृष्टिकोण का उपयोग करके C++ प्रोग्राम पर चर्चा कर रहे हैं। एल्गोरिदम Begin Initialize the elements of array by string keyword. And take string as input. Print the array. End. उदाहरण कोड #include<iostream>