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

পাইথনে প্যালিনড্রোম স্ট্রিং থেকে লেক্সিকোগ্রাফিক্যালি সবচেয়ে ছোট নন-প্যালিনড্রোমিক স্ট্রিং বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি স্ট্রিং s আছে যেটি প্যালিনড্রোম। আমাদের কাজ হল স্ট্রিংয়ের একটি ক্যারেক্টার পরিবর্তন করে সেটিকে প্যালিনড্রোম নয় এমন একটি স্ট্রিং বানানো যেটি লেক্সিকোগ্রাফিক্যালি সবচেয়ে ছোট।

উদাহরণস্বরূপ, যদি ইনপুট হয় s = "level", তবে আউটপুট হবে "aevel", কারণ প্রথম "l" কে "a" দিয়ে রিপ্লেস করলে লেক্সিকোগ্রাফিক্যালি সবচেয়ে ছোট নন-প্যালিনড্রোমিক স্ট্রিং পাওয়া যায়।

সমাধানের ধাপসমূহ:
  • i কে ০ থেকে len(s)//2 পর্যন্ত লুপ চালান:
    • যদি s[i] != "a" হয়, তবে:
      • s := list(s)
      • s[i] := "a"
      • "".join(s) রিটার্ন করুন।
  • s := list(s)
  • s[-1] := "b"
  • "".join(s) রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, s):
        for i in range(len(s) // 2):
            if s[i] != "a":
                s = list(s)
                s[i] = "a"
                return "".join(s)
        s = list(s)
        s[-1] = "b"
        return "".join(s)

ob = Solution()
s = "level"
print(ob.solve(s))
ইনপুট
"level"
আউটপুট
aevel
  1. পাইথন প্রোগ্রামে casefold() স্ট্রিং মেথড

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  3. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা

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