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

C++ में एक पालिंड्रोम तोड़ें

मान लीजिए कि हमारे पास एक पैलिंड्रोमिक स्ट्रिंग पैलिंड्रोम है, हमें ठीक एक वर्ण को किसी भी लोअरकेस अंग्रेजी अक्षर से बदलना होगा ताकि स्ट्रिंग लेक्सिकोग्राफ़िक रूप से सबसे छोटी संभव स्ट्रिंग बन जाए जो पैलिंड्रोम नहीं है। अब ऐसा करने के बाद, हमें अंतिम स्ट्रिंग ढूंढनी होगी। यदि ऐसा करने का कोई तरीका नहीं है, तो खाली स्ट्रिंग वापस कर दें। तो अगर इनपुट “abccba” जैसा है, तो आउटपुट “aaccba” होगा।

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

  • परिवर्तित :=असत्य

  • यदि एक स्ट्रिंग का आकार 1 है, तो एक रिक्त स्ट्रिंग लौटाएं

  • i :=0 और j :=s की लंबाई – 1

  • बायांए:=सही और दायांए:=सही

  • जबकि मैं

    • यदि s[i] 'a' नहीं है, तो s[i] को 'a' के रूप में सेट करें और s को वापस करें

    • i को 1 से बढ़ाएं और j को 1 से घटाएं

  • s[s का आकार - 1] :='b'

  • वापसी एस

उदाहरण (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string breakPalindrome(string s) {
      bool changed = false;
      if(s.size() == 1)return "";
      int i = 0, j = s.size() - 1;
      bool leftA = true;
      bool rightA= true;
      while(i < j){
         if(s[i] != 'a'){
            s[i] = 'a';
            return s;
         }
         i++;
         j--;
      }
      s[s.size() - 1] = 'b';
      return s;
   }
};
main(){
   Solution ob;
   cout << (ob.breakPalindrome("abccba"));
}

इनपुट

"abccba"

आउटपुट

aaccba

  1. सी++ में () पर स्ट्रिंग

    सार यह संक्षिप्त ट्यूटोरियल C++ स्ट्रिंग क्लास at() . का एक सिंहावलोकन है स्ट्रिंग से वर्णों के अनुक्रम तक पहुँचने के लिए कार्यक्षमता। आगामी खंड में, एक इच्छुक पाठक स्ट्रिंग क्लास प्रोग्रामिंग उदाहरणों के माध्यम से at() के हेरफेर की पूरी समझ प्राप्त कर सकता है। कार्य। स्ट्रिंग क्लास प्रोग्रामिंग श

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

    इस खंड में, हम देखेंगे कि C++ में स्ट्रिंग्स को कैसे टोकननाइज़ किया जाता है। सी में हम वर्ण सरणी के लिए strtok() फ़ंक्शन का उपयोग कर सकते हैं। यहां हमारे पास एक स्ट्रिंग क्लास है। अब हम देखेंगे कि उस स्ट्रिंग से कुछ सीमांकक का उपयोग करके स्ट्रिंग को कैसे काटा जाता है। C++ फीचर का उपयोग करने के लिए,

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

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