কম্পিউটার টিউটোরিয়াল

পাইথনে ভিন্ন সন্নিহিত বিট রিমুভ করে সবচেয়ে ছোট স্ট্রিং বের করার প্রোগ্রাম


मान लीजिए हमारे पास एक बाइनरी स्ट्रिंग s है, हम किन्हीं दो आसन्न अक्षरों को हटा सकते हैं यदि वे भिन्न हैं। अंत में, हमें सबसे छोटी स्ट्रिंग की लंबाई ढूंढनी है जो हम प्राप्त कर सकते हैं यदि हम इस संक्रिया को जितनी बार चाहें उतनी बार कर सकते हैं।

उदाहरण के लिए, यदि इनपुट है s = "1100011", तो आउटपुट होगा 1, क्योंकि "10" हटाने के बाद हमें "10011" मिलता है, फिर से "10" हटाने पर यह "011" हो जाएगा, फिर "01" हटाने पर 1 बचेगा।

इसे हল করার জন্য, আমরা নিম্নলিখিত ধাপগুলো অনুসরণ করবঃ

  • stack := একটি নতুন তালিকা
  • s এর প্রতিটি c জন্য, করুন
    • যদি stack খালি থাকে অথবা stack-এর শীর্ষে c থাকে, তবে
      • c কে stack-এ ঢুকান
    • অন্যথায়, যখন stack-এর শীর্ষে c নেই, তবে
      • stack- থেকে উপাদান বের করুন
  • stack-এ থাকা উপাদানের সংখ্যা ফেরত দিন

বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:

উদাহরণ

class Solution:    def solve(self, s):       stack = []       for c in s:          if not stack or stack[-1] == c:             stack.append(c)          elif stack[-1] != c:             stack.pop()       return len(stack) ob = Solution() print(ob.solve("1100011"))

ইনপুট

"1100011"

আউটপুট

1

  1. পাইথনে স্ট্রিং থেকে последователь député ডুপ্লিকেট ক্যারেক্টার মুছে ফেলার প্রোগ্রাম

  2. পাইথনে দিয়ে गये স্ট্রিং সিকোয়েন্স নিয়ম অনুসরণ করে nth সিকোয়েন্স বের করার প্রোগ্রাম

  3. পাইথনে ভিন্ন সন্নিহিত বিট রিমুভ করে সবচেয়ে ছোট স্ট্রিং বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: স্ট্রিং-এ মিরর ক্যারেক্টার বের করা