কম্পিউটার

পাইথনে বিপরীত স্ট্রিং II


ধরুন আমাদের একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা k আছে, আমাদের স্ট্রিং শুরু থেকে গণনা করা প্রতি 2k অক্ষরের জন্য প্রথম k অক্ষরগুলিকে বিপরীত করতে হবে। যদি কোন পর্যাপ্ত অক্ষর অবশিষ্ট না থাকে, তাহলে তাদের সব বিপরীত করুন। যদি 2k-এর কম অক্ষর থাকে কিন্তু k অক্ষরের চেয়ে বড় বা সমান হয়, তাহলে প্রথম k অক্ষরটিকে উল্টে দিন এবং অন্যটিকে আসল হিসেবে ছেড়ে দিন।

সুতরাং, ইনপুট যদি "abcdefgh" এবং k =3 এর মত হয়, তাহলে আউটপুট হবে "cbadefhg"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • l :=s

    এর অক্ষরের একটি তালিকা তৈরি করুন
  • i :=k-1

  • যখন i এর আকার

    • a :=l[সূচক 0 থেকে i-k+1]

    • b :=l[সূচী i-k+1 থেকে i+1]

    • c :=l[সূচী i+1 থেকে শেষ পর্যন্ত]

    • l :=a concatenate b[সূচী 0 থেকে শেষ পর্যন্ত] concatenate c

    • i :=i + 2*k

  • 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))

ইনপুট

"abcdefg", 3

আউটপুট

cbadefg

  1. পাইথনে বিপরীত স্ট্রিং

  2. পাইথনে একটি প্রদত্ত স্ট্রিং-এর বিপরীত শব্দ

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

  4. কিভাবে Python একটি স্ট্রিং বিপরীত?