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

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

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

समाधान दृष्टिकोण

  • changed को false सेट करें।
  • यदि स्ट्रिंग का आकार 1 है, तो खाली स्ट्रिंग वापस करें।
  • i = 0 और j = स्ट्रिंग की लंबाई - 1 सेट करें।
  • leftA और rightA को true सेट करें।
  • जब तक i < j हो:
    • यदि s[i] 'a' नहीं है, तो s[i] को 'a' बनाएं और स्ट्रिंग वापस करें।
    • i को 1 बढ़ाएं और j को 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;
    }
};

int main() {
    Solution ob;
    cout << (ob.breakPalindrome("abccba"));
    return 0;
}

इनपुट

"abccba"

आउटपुट

aaccba
  1. - C++ में String at() फंक्शन

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

  1. - C++ में स्ट्रिंग को टोकनाइज़ करना

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

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

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