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

পাইথনে রিভার্স স্ট্রিং II (Reverse String II)


সমস্যা বিবরণ

একটি স্ট্রিং s এবং পূর্ণসংখ্যা k দেওয়া থাকে। প্রতিটি 2k ব্লকে প্রথম k ক্যারেক্টার রিভার্স করুন। শেষ ব্লকে k-এর কম ক্যারেক্টার থাকলে সব রিভার্স করুন। k থেকে 2k পর্যন্ত থাকলে শুধু প্রথম k রিভার্স করুন।

উদাহরণ

s = "abcdefg", k = 3 → আউটপুট: "cbadefg"

ব্লক ০-৫: "abcdef" → প্রথম ৩টি "abc" → "cba" + "def" = "cbadef" + "g" = "cbadefg"।

এলগরিদম

  1. l = list(s)।
  2. i = k - 1।
  3. while i < len(l) + k:
    • a = l[:i-k+1], b = l[i-k+1:i+1], c = l[i+1:]।
    • l = a + b[::-1] + c।
    • i += 2*k।
  4. ''.join(l) রিটার্ন।

পাইথন বাস্তবায়ন

class Solution:
    def reverseStr(self, s, k):
        l = list(s)
        i = k - 1
        while i < len(l) + k:
            a = l[:i-k+1]
            b = l[i-k+1:i+1]
            c = l[i+1:]
            l = a + b[::-1] + c
            i += 2 * k
        return ''.join(l)

ob = Solution()
print(ob.reverseStr("abcdefg", 3))  # cbadefg
print(ob.reverseStr("abcdefgh", 3)) # cbadefhg

ইনপুট / আউটপুট

ইনপুট: "abcdefg", 3
আউটপুট: cbadefg
  1. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  2. পাইথনে স্ট্রিং-এর শব্দগুলো উল্টে দেওয়া

  3. পাইথনে casefold() স্ট্রিং মেথড

  4. পাইথনে স্ট্রিং রিভার্স করা