কম্পিউটার টিউটোরিয়াল

পাইথনে ডিকোডেড স্ট্রিং-এ নির্দিষ্ট ইনডেক্সের ক্যারেক্টার বের করুন

একটি এনকোডেড স্ট্রিং S দেওয়া আছে। এটিকে ডিকোড করে টেপে লিখতে হবে। এনকোডেড স্ট্রিং এক এক ক্যারেক্টার পড়া হয়:

  • যদি ক্যারেক্টার অক্ষর হয়, সেটি টেপে লিখা হয়
  • যদি ডিজিট হয়, বর্তমান টেপটি ডিজিট - ১ বার রিপিট হয়

এনকোডেড স্ট্রিং S এবং ইনডেক্স K দেওয়া থাকলে, ডিকোডেড স্ট্রিং-এ K-তম অক্ষর (১-বেসড) বের করতে হবে।

স্ট্রিং "hello2World3" এবং k = 10 হলে আউটপুট "o"। ডিকোডেড স্ট্রিং: "hellohelloWorldhellohelloWorldhellohelloWorld"।

সমাধানের ধাপসমূহ

  • size := 0
  • s-এ প্রতিটি ক্যারেক্টার i-এর জন্য:
    • যদি i নমেরিক: size *= int(i), অন্যথায় size += 1
  • i = len(s)-1 থেকে 0 পর্যন্ত:
    • k := k % size
    • যদি s[i] নমেরিক এবং k == 0: s[i] রিটার্ন
    • যদি s[i] অক্ষর: size -= 1, অন্যথায় size /= int(s[i])
  • খালি স্ট্রিং রিটার্ন

উদাহরণ

class Solution(object):
    def decodeAtIndex(self, s, k):
        size = 0
        for i in s:
            if i.isdigit():
                size *= int(i)
            else:
                size += 1
        for i in range(len(s) - 1, -1, -1):
            k %= size
            if s[i].isalpha() and k == 0:
                return s[i]
            if s[i].isalpha():
                size -= 1
            else:
                size /= int(s[i])
        return ""

ob = Solution()
print(ob.decodeAtIndex("hello2World3", 10))

ইনপুট

"hello2World3" 10

আউটপুট

o
  1. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  2. পাইথনে casefold() স্ট্রিং মেথড

  3. Python-এ সিকোয়েন্স ইনডেক্স দিয়ে ইটারেট করা

  4. পাইথনে স্ট্রিং-এর আকার পাওয়া