ধরা যাক একটি এনকোডেড স্ট্রিং আছে যেখানে সাবস্ট্রিং-এর পুনরাবৃত্তি সাবস্ট্রিংর পর তার কাউন্ট দিয়ে দেখানো হয়। উদাহরণ: "pq2rs2" এবং k=5 হলে ডিক্রিপ্টেড স্ট্রিং "pqpqrsrs", ৫ম ক্যারেক্টার 'r'। ফ্রিকোয়েন্সি একাধিক ডিজিটের হতে পারে।
ইনপুট: string="pq4r2ts3", k=11 → আউটপুট 't' (স্ট্রিং: pqpqpqpqrrtststs)
সমাধানের ধাপসমূহ
- encoded = "", occurrence=0, i=0
- while i < len(str):
- temp = "", occurrence = 0
- while i < len(str) এবং str[i] অ্যালফাবেট: temp += str[i]; i++
- while i < len(str) এবং str[i] ডিজিট: occurrence = occurrence*10 + (ord(str[i])-ord('0')); i++
- for j in 1..occurrence: encoded += temp
- যদি occurrence==0: encoded += temp
- return encoded[k-1]
উদাহরণ
def find_kth_char(str, k):
encoded = ""
occurrence = 0
i = 0
while i < len(str):
temp = ""
occurrence = 0
while i < len(str) and 'a' <= str[i] <= 'z':
temp += str[i]
i += 1
while i < len(str) and '1' <= str[i] <= '9':
occurrence = occurrence * 10 + ord(str[i]) - ord('0')
i += 1
for j in range(1, occurrence + 1):
encoded += temp
if occurrence == 0:
encoded += temp
return encoded[k - 1]
str = "pq4r2ts3"
k = 11
print(find_kth_char(str, k))
ইনপুট
"pq4r2ts3", 11
আউটপুট
t