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

C++ में लेटर केस क्रमपरिवर्तन

मान लीजिए कि हमारे पास अक्षरों और संख्याओं के साथ एक स्ट्रिंग है। हमें स्ट्रिंग में मौजूद अक्षरों के अपरकेस और लोअरकेस संस्करणों को लेकर उस स्ट्रिंग के सभी संभावित संयोजनों को उत्पन्न करना होगा। तो अगर एक स्ट्रिंग में केवल संख्याएं हैं, तो केवल वही वापस किया जाएगा। मान लीजिए कि स्ट्रिंग "1ab2" की तरह है, तो स्ट्रिंग्स ["1ab2", "1Ab2", "1aB2", "1AB2"]

होंगी।

इस समस्या को हल करने के लिए, हम पुनरावर्ती दृष्टिकोण का उपयोग करेंगे। उस इंडेक्स से काम शुरू करने के लिए इंडेक्स पैरामीटर लेता है। यह एक अस्थायी स्ट्रिंग भी लेता है जिसके लिए परिणाम बनाया जाता है। जब सूचकांक स्ट्रिंग की लंबाई के समान हो, तो अस्थायी स्ट्रिंग लौटाएं। दिए गए इंडेक्स के लिए, यदि वह लोअरकेस अक्षर है, तो इसे अपरकेस और इसके विपरीत बनाएं, फिर कार्य को दोबारा करें।

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<string> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector <string> res;
   void solve(string s, int idx = 0, string temp = ""){
      if(idx == s.size()){
         res.push_back(temp);
         return;
      }
      solve(s, idx + 1, temp + s[idx]);
      int diff = 'a' - 'A';
      if(s[idx] >= 'a' && s[idx] <= 'z'){
         char x = (s[idx] - diff);
         solve(s, idx + 1, temp + x);
      }
      else if (s[idx] >= 'A' && s[idx] <= 'Z'){
         char x = (s[idx] + diff);
         solve(s, idx + 1, temp + x);
      }
   }
   vector<string> letterCasePermutation(string S) {
      res.clear();
      solve(S);
      return res;
   }
};
main(){
   Solution ob;
   print_vector(ob.letterCasePermutation("1ab2"));
   print_vector(ob.letterCasePermutation("9876"));
}

इनपुट

"1ab2"
"9876"

आउटपुट

[1ab2, 1aB2, 1Ab2, 1AB2, ]
[9876, ]

  1. सी++ में एसटीडी ::स्ट्रिंग को लोअर केस में कैसे बदलें?

    इस खंड में, हम देखेंगे कि C++ स्ट्रिंग के सभी अक्षरों को लोअरकेस अक्षरों में कैसे परिवर्तित किया जाए। ऐसा करने के लिए हमें ट्रांसफॉर्म फ़ंक्शन का उपयोग करना होगा। यह ट्रांसफ़ॉर्म फ़ंक्शन एल्गोरिथम लाइब्रेरी में मौजूद है। ट्रांसफ़ॉर्म फ़ंक्शन स्ट्रिंग के शुरुआती पॉइंटर और स्ट्रिंग के एंडिंग पॉइंटर क

  1. C++ स्ट्रिंग को अपर केस में बदलें

    यहाँ एक स्ट्रिंग को C++ भाषा में अपरकेस में बदलने का प्रोग्राम है, उदाहरण #include<iostream> #include<string.h> using namespace std; int main() {    char s[30] = "This_is_string";    int i;    for(i=0;i<=strlen(s);i++) {       i

  1. सी ++ में एक स्ट्रिंग को टोकननाइज़ करें?

    पहला तरीका है, रिक्त स्थान से अलग किए गए शब्दों को पढ़ने के लिए एक स्ट्रिंगस्ट्रीम का उपयोग करना। यह थोड़ा सीमित है लेकिन यदि आप उचित जांच प्रदान करते हैं तो यह कार्य काफी अच्छी तरह से करता है। उदाहरण #include <vector> #include <string> #include <sstream> using namespace std; in