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

Python में सभी प्रश्न चिह्नों को बदलकर लगातार दोहराव वाले कैरेक्टर्स से बचें

मान लीजिए हमारे पास एक लोअरकेस स्ट्रिंग s है जिसमें केवल अक्षर और '?' कैरेक्टर हैं, हमें सभी '?' कैरेक्टर्स को लोअरकेस अक्षरों में बदलना है ताकि अंतिम स्ट्रिंग में कोई लगातार दोहराव वाले कैरेक्टर न हों। यदि एक से अधिक समाधान हैं, तो उनमें से कोई भी वापस करें।

इसलिए, यदि इनपुट है: s = "hel??", तो आउटपुट "helab" होगा, क्योंकि पहला प्रश्न चिह्न 'l' को छोड़कर कुछ भी हो सकता है और जब पहला दिया जाता है, तो दूसरा 'a' को छोड़कर कुछ भी हो सकता है।

हल करने के चरण

  • यदि s का आकार == 1:
    • यदि s == "?", तो "a" वापस करें
    • s वापस करें
  • s := s में मौजूद कैरेक्टर्स की सूची
  • i को 0 से s के आकार - 1 तक के लिए:
    • यदि s[i] == "?":
      • यदि i == 0 और s[i+1] == "?", तो s[i] := "a"
      • अन्यथा यदि i == 0 और s[i+1] == "a", तो s[i] := "b"
      • अन्यथा यदि i == 0, तो s[i] := "a"
      • अन्यथा यदि i == (s का आकार)-1 और s[i-1] == "a", तो s[i] := "b"
      • अन्यथा यदि i == (s का आकार)-1, तो s[i] := "a"
      • अन्यथा यदि s[i-1] == "a" और s[i+1] == "?", तो s[i] := "b"
      • अन्यथा यदि s[i+1] == "?", तो s[i] := "a"
      • अन्यथा यदि (s[i-1] == "a" और s[i+1] == "b") या (s[i-1] == "b" और s[i+1] == "a"), तो s[i] := "c"
      • अन्यथा यदि "a" in (s[i-1], s[i+1]), तो s[i] := "b"
      • अन्यथा, s[i] := "a"
  • कैरेक्टर्स को स्ट्रिंग में जोड़कर s वापस करें

उदाहरण (Python)

def solve(s):
    if len(s) == 1:
        if s == "?":
            return "a"
        return s
    s = list(s)
    for i in range(len(s)):
        if s[i] == "?":
            if i == 0 and s[i+1] == "?":
                s[i] = "a"
            elif i == 0 and s[i+1] == "a":
                s[i] = "b"
            elif i == 0:
                s[i] = "a"
            elif i == len(s)-1 and s[i-1] == "a":
                s[i] = "b"
            elif i == len(s)-1:
                s[i] = "a"
            elif s[i-1] == "a" and s[i+1] == "?":
                s[i] = "b"
            elif s[i+1] == "?":
                s[i] = "a"
            elif (s[i-1] == "a" and s[i+1] == "b") or (s[i-1] == "b" and s[i+1] == "a"):
                s[i] = "c"
            elif "a" in (s[i-1], s[i+1]):
                s[i] = "b"
            else:
                s[i] = "a"
    return "".join(s)

s = "hel??"
print(solve(s))

इनपुट

"hel??"

आउटपुट

helab
  1. पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक स्ट्रिंग इनपुट दिए जाने पर, हमें यह ढूंढना होगा कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं। दृष्टिकोण हम बूलियन वैल्यूज़ का एक ऐरे बनाएंगे, जहां इंडेक्स i पर वेरिएबल फ्लैग

  1. - पायथन प्रोग्राम: स्ट्रिंग में मिरर कैरेक्टर्स खोजना

    एक यूजर इनपुट स्ट्रिंग और पोजिशन दी गई है, उस पोजिशन से हमें स्ट्रिंग की लंबाई तक अल्फाबेटिकल ऑर्डर में कैरेक्टर्स को मिरर करना है। इस ऑपरेशन में, हम a को z में, b को y में, c को x में, d को w में बदलते हैं और इसी तरह, यानी पहला कैरेक्टर लास्ट बन जाता है और इसी तरह।Input: p = 3 Input string = python

  1. - सूची के सभी सबलिस्ट प्रिंट करने के लिए पायथन प्रोग्राम

    समस्या विवरण एक सूची दी गई है, उसके सभी सबलिस्ट प्रिंट करें। उदाहरण इनपुट: list = [1, 2, 3] आउटपुट: [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] एल्गोरिदम एक सूची दी गई है। एक खाली सबलिस्ट लें। दिए गए सूची की लंबाई तक एक लूप चलाएं। i+1 से सूची की लंबाई तक एक और लूप चलाएं ताकि i से दाईं ओर के सभी