ধরি s একটি স্ট্রিং যা ডিজিট (0-9) এবং '#' দিয়ে তৈরি। আমরা s-কে ইংরেজি লোয়ারকেস ক্যারেক্টারে ম্যাপ করব:
- 'a' থেকে 'i' -> '1' থেকে '9'
- 'j' থেকে 'z' -> '10#' থেকে '26#'
ম্যাপিংয়ের পর স্ট্রিং বের করতে হবে। ইউনিক ম্যাপিং সবসময় থাকবে।
উদাহরণ
ইনপুট: "10#11#12" -> আউটপুট: "jkab" (10#=j, 11#=k, 1=a, 2=b)
সমাধানের ধাপসমূহ
- ক্যারেক্টার এবং তাদের ASCII ভ্যালুর ম্যাপ তৈরি করুন
- ans := "", map[''] := '', i := len(s) - 1
- যখন i >= 0:
- যদি s[i] == '#', তবে:
- temp := s[i-2:i]
- ans := map[temp] + ans
- i := i - 3
- অন্যথায় ans := map[s[i]] + ans, i := i - 1
- যদি s[i] == '#', তবে:
- ans রিটার্ন করুন
পাইথন কোড উদাহরণ
class Solution(object):
def freqAlphabets(self, s):
m = {}
x = 'a'
for i in range(1, 27):
m[str(i)] = x
x = chr(ord(x) + 1)
ans = ""
m[''] = ''
i = len(s) - 1
while i >= 0:
if s[i] == "#":
temp = ""
for j in range(i - 2, i):
temp += s[j]
ans = m[str(temp)] + ans
i -= 3
else:
ans = m[s[i]] + ans
i -= 1
return ans
ob1 = Solution()
print(ob1.freqAlphabets("17#123#5621#"))
ইনপুট
"17#123#5621#"
আউটপুট
qawefu