কম্পিউটার

পাইথনে বর্ণমালা থেকে পূর্ণসংখ্যা ম্যাপিং পর্যন্ত স্ট্রিং ডিক্রিপ্ট করুন


ধরুন আমাদের একটি স্ট্রিং আছে যা সংখ্যা ('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

  1. পাইথনে বাইনারি ট্রি থেকে স্ট্রিং তৈরি করুন

  2. স্ট্রিং তালিকাকে পাইথনে পূর্ণসংখ্যার সাজানো তালিকায় রূপান্তর করুন

  3. পাইথনে পাতা থেকে শুরু হওয়া ক্ষুদ্রতম স্ট্রিং

  4. পাইথন প্রোগ্রামের একটি স্ট্রিং থেকে nম অক্ষর সরানো হচ্ছে