কম্পিউটার

পাইথনে ক্রমাগত পুনরাবৃত্তি করা অক্ষর এড়াতে সমস্ত প্রশ্ন চিহ্ন প্রতিস্থাপন করার প্রোগ্রাম


ধরুন আমাদের একটি ছোট হাতের স্ট্রিং s আছে যাতে শুধুমাত্র অক্ষর এবং '?' চরিত্র, আমরা সব রূপান্তর করতে হবে '?' ছোট হাতের অক্ষরগুলিতে অক্ষরগুলি যেমন চূড়ান্ত স্ট্রিংটিতে কোনও ধারাবাহিক পুনরাবৃত্তি অক্ষর থাকবে না। যদি একাধিক সমাধান থাকে, তাদের যেকোনো একটি ফেরত দিন।

সুতরাং, যদি ইনপুটটি s ="hel??" এর মত হয়, তাহলে আউটপুটটি হেলাব হবে, প্রথম প্রশ্ন চিহ্নটি '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"

      • অন্যথায় যখন আমি 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"

      • অন্যথায় যখন s[i-1] বা s[i+1] হয় "a", তখন

        • s[i] :="b"

      • অন্যথায়,

        • s[i] :="a"

  • স্ট্রিং এ অক্ষর যোগ করার পরে s ফেরত দিন

উদাহরণ (পাইথন)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

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. পাইথন প্রোগ্রাম একটি স্ট্রিং সব অনন্য অক্ষর আছে কিনা তা পরীক্ষা করতে

  2. পাইথন প্রোগ্রাম একটি স্ট্রিং-এ সমস্ত সদৃশ অক্ষর খুঁজে পেতে

  3. একটি স্ট্রিং মধ্যে মিরর অক্ষর খুঁজে পেতে পাইথন প্রোগ্রাম

  4. একটি তালিকার সমস্ত সাবলিস্ট প্রিন্ট করতে পাইথন প্রোগ্রাম।