ধরুন আমাদের কাছে একটি আলফানিউমেরিক স্ট্রিং s আছে যাতে ছোট হাতের ইংরেজি অক্ষর রয়েছে তার জোড় অবস্থানে এবং সংখ্যাগুলি তার বিজোড় অবস্থানে। একটি অপারেশন শিফট (c, x) বিবেচনা করুন, যেখানে c যেকোনো অক্ষর এবং x একটি সংখ্যা (ডিজিট), এটি c এর পরে xম অক্ষর খুঁজে পাবে। সুতরাং, উদাহরণস্বরূপ, shift('p', 5) ='u' এবং shift('a', 0) ='a'। এখন প্রতিটি বিজোড় সূচক i এর জন্য, আমরা s[i] ডিজিটকে shift(s[i-1], s[i]) দিয়ে প্রতিস্থাপন করতে চাই। আমাদের সব ডিজিট প্রতিস্থাপন করার পর s খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি s ="a2b1d4f3h2" এর মত হয়, তাহলে আউটপুট হবে "acbcdhfihj" কারণ
-
shift('a', 2) ='c'
-
shift('b', 1) ='c'
-
shift('d', 4) ='h'
-
shift('f', 3) ='i'
-
shift('h', 2) ='j'
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
res:=ফাঁকা স্ট্রিং
-
0 থেকে s আকারের রেঞ্জের জন্য, করুন
-
যদি s[i] একটি সংখ্যা হয়, তাহলে
-
res :=(ASCII s[i] + ASCII of s[i-1]) থেকে res সংযুক্ত অক্ষর
-
-
অন্যথায়,
-
res :=res concatenate s[i]
-
-
-
রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(s): res="" for i in range(len(s)): if s[i].isdigit(): res+= chr(int(s[i])+ord(s[i-1])) else: res+=s[i] return res s = "a2b1d4f3h2" print(solve(s))
ইনপুট
"a2b1d4f3h2"
আউটপুট
acbcdhfihj