ধরুন আমাদের একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা 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