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

पायथन में स्ट्रिंग से सभी आसन्न डुप्लिकेट हटाएं


मान लीजिए हमारे पास लोअरकेस अक्षरों की एक स्ट्रिंग S है; एक डुप्लिकेट रिमूवल ऑपरेशन किया जाएगा। यह दो आसन्न और समान अक्षरों को चुनकर और उन्हें हटाकर किया जाएगा।

हम S से बार-बार डुप्लिकेट हटाएंगे जब तक कोई डुप्लिकेट शेष न रहे।

सभी ऐसे डुप्लिकेट रिमूवल पूरे होने के बाद स्ट्रिंग लौटाएं। यह गारंटी है कि उत्तर यूनिक है।

मान लीजिए स्ट्रिंग "abbacaca" है, तो उत्तर "caca" होगा। पहले डुप्लिकेट bb हटाएं, फिर स्ट्रिंग "aacaca" है, फिर aa हटाएं, फिर स्ट्रिंग "caca" है, फिर ऐसा कोई डुप्लिकेट नहीं है।

समाधान के चरण

  • एक ऐरे st परिभाषित करें, और i := 0 इनिशियलाइज़ करें
  • जब तक i < स्ट्रिंग की लंबाई
    • यदि st में कुछ एलिमेंट है, और st का अंतिम एलिमेंट = st[i], तो i को 1 से बढ़ाएं, और st से अंतिम एलिमेंट डिलीट करें
    • अन्यथा स्ट्रिंग[i] को st में जोड़ें, i को 1 से बढ़ाएं
  • अंत में st में सभी एलिमेंट्स को स्ट्रिंग के रूप में जोड़कर लौटाएं

उदाहरण

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

class Solution(object):
    def removeDuplicates(self, S):
        st = []
        i = 0
        while i < len(S):
            if len(st) != 0 and st[-1] == S[i]:
                i += 1
                st.pop(-1)
            else:
                st.append(S[i])
                i += 1
        return "".join(i for i in st)

ob1 = Solution()
print(ob1.removeDuplicates("abbacaca"))

इनपुट

"abbacaca"

आउटपुट

"caca"

  1. पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने हैं। उदाहरण # रूपांतरण def toString(List): return .join(List) # क्रमपरिवर्तन def permute(a, l, r): if l == r: print(toString(a))

  1. - पायथन में स्ट्रिंग के सभी ट्रेलिंग व्हाइटस्पेस कैसे हटाएं?

    हम rstrip() मेथड का उपयोग कर सकते हैं जो स्ट्रिंग की एक कॉपी लौटाता है जिसमें अंत से सभी निर्दिष्ट कैरेक्टर्स हटा दिए गए हों। डिफ़ॉल्ट ट्रिम होने वाला कैरेक्टर व्हाइटस्पेस है। उदाहरण के लिए: >>> Hello .rstrip() Hello >>> Ninja Turtles the movie .rstrip() Ninja Turtles the m

  1. - पायथन में स्ट्रिंग में सभी लीडिंग व्हाइटस्पेस कैसे हटाएं?

    lstrip() मेथड स्ट्रिंग की शुरुआत में लीडिंग व्हाइटस्पेस, न्यूलाइन और टैब कैरेक्टर्स को हटा देगा। आप इसका उपयोग निम्न प्रकार से कर सकते हैं: >>> hello world!.lstrip() hello world! आप दोनों ट्रेलिंग और लीडिंग व्हाइटस्पेस को उसी तरीके से हटाने के लिए strip() फ़ंक्शन का भी उपयोग कर सकते हैं।