একটি অ্যালফানিউমেরিক স্ট্রিং s দেওয়া আছে যেখানে জোড় ইনডেক্সে ছোট হাতের ইংরেজি অক্ষর এবং বিজোড় ইনডেক্সে ডিজিট রয়েছে। shift(c, x) অপারেশন হলো c অক্ষরের পর থেকে x-তম অক্ষর বের করা। যেমন shift('p', 5) = 'u', shift('a', 0) = 'a'। বিজোড় ইনডেক্স i-তে থাকা ডিজিট s[i]-কে shift(s[i-1], s[i]) দিয়ে রিপ্লেস করতে হবে। রিপ্লেস করার পর স্ট্রিংটি ফেরত দিন।
যেমন, s = "a2b1d4f3h2" হলে আউটপুট "acbcdhfihj"। কারণ: shift('a',2)='c', shift('b',1)='c', shift('d',4)='h', shift('f',3)='i', shift('h',2)='j'।
সমাধানের ধাপসমূহ
- res := খালি স্ট্রিং
- i = 0 থেকে s-এর দৈর্ঘ্য পর্যন্ত লুপ:
- যদি s[i] ডিজিট হয়, তবে res := res + chr(int(s[i]) + ord(s[i-1]))
- অন্যথায় res := res + s[i]
- res ফেরত দিন।
উদাহরণ
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