ধরুন আমাদের একটি স্ট্রিং আছে যা সংখ্যা ('0' - '9') এবং '#' দ্বারা গঠিত। আমাদেরকে নিচের মতো একটি ইংরেজি ছোট হাতের অক্ষরে s ম্যাপ করতে হবে −
-
অক্ষর ('a' থেকে 'i') যথাক্রমে ('1' থেকে '9') দ্বারা প্রতিনিধিত্ব করা হয়।
-
অক্ষর ('j' থেকে 'z') যথাক্রমে ('10#' থেকে '26#') দ্বারা প্রতিনিধিত্ব করা হয়।
ম্যাপিং এর পরে যে স্ট্রিং গঠিত হয়েছে তা আমাদের খুঁজে বের করতে হবে। আমরা একটি অনুমান গ্রহণ করছি যে একটি অনন্য ম্যাপিং সর্বদা বিদ্যমান থাকবে। সুতরাং যদি ইনপুটটি "10#11#12" এর মত হয়, তাহলে এটি হবে "jkab"। যেমন 10# হল j, 11# হল k, 1 হল a এবং 2 হল b৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সমস্ত অক্ষর এবং তাদের সংশ্লিষ্ট ASCII মান ধরে রাখতে একটি মানচিত্র তৈরি করুন
-
উত্তর :=0, এবং মানচিত্র[''] :='', বিজ্ঞাপন i :=স্ট্রিংয়ের দৈর্ঘ্য - 1
-
যখন i> 0
-
যদি s[i] হয় #, তাহলে
-
তাপমাত্রা :=“”
-
j :=i – 2 থেকে i, temp :=temp + s[j]
এর জন্য -
উত্তর :=মানচিত্র[temp] + উত্তর
-
i 3 দ্বারা হ্রাস করুন
-
-
অন্যথায় ans :=map[s[i]] + ans, এবং i হ্রাস করুন 1
-
-
উত্তর ফেরত দিন
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
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