মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যা n আছে। আমাদের কাজ হল n-তম টার্ম "Look and Say" সিকোয়েন্সে বের করা। এই সিকোয়েন্সের প্রথম কয়েকটি টার্ম নিচের মতো:
- 1
- 11
- 21
- 1211
- 111221
স্ট্রিংটি নিচের পদ্ধতিতে পড়া হয়:
- 1 (One)
- 11 (One 1) — আগের ১ কে পড়ে "One 1" বলা হয়
- 21 (Two 1) — আগের ১১ কে পড়ে "Two 1" বলা হয়
- 1211 (One 2 one 1) — আগের ২১ কে পড়ে "One 2 one 1" বলা হয়
- 111221 (One 1 one 2 two 1) — আগের 1211 কে পড়ে "One 1 one 2 two 1" বলা হয়
মান লক্ষ্য করুন 1 <= n <= 30। আমাদের কাজ হল n-তম টার্ম জেনারেট করা।
s := "1"সেট করুন।- যদি
n == 1হয়, তবেsরিটার্ন করুন। i := 2থেকেn+1পর্যন্ত লুপ চালান:j := 0temp := ""(খালি স্ট্রিং)curr := ""এবংcount := 0j < len(s)হলে লুপ চালান:- যদি
curr == ""হয়, তবেcurr := s[j],count := 1এবংj += 1 - অন্যথায় যদি
curr == s[j]হয়, তবেcount += 1এবংj += 1 - অন্যথায়:
temp := temp + str(count) + currcurr := ""count := 0
- যদি
temp := temp + str(count) + currs := temp
sরিটার্ন করুন।
class Solution(object):
def solve(self, n):
s = "1"
if n == 1:
return s
for i in range(2, n+1):
j = 0
temp = ""
curr = ""
count = 0
while j < len(s):
if curr == "":
curr = s[j]
count = 1
j += 1
elif curr == s[j]:
count += 1
j += 1
else:
temp += str(count) + curr
curr = ""
count = 0
temp += str(count) + curr
s = temp
return s
ob = Solution()
n = 5
print(ob.solve(n))
5
"111221"