Count and Say
https://leetcode.com/explore/featured/card/top-interview-questions-easy/127/strings/886/
Iterative:
class Solution:
def countAndSay(self, n: int) -> str:
def sayer(s):
res = ""
prev = s[0]
cnt = 1
for i in s[1:]:
if i != prev:
res += str(cnt) + prev
prev = i
cnt =1
else:
cnt+=1
res += str(cnt) + prev
return res
curr = "1"
currRes = curr
for _ in range(n-1):
currRes = sayer(curr)
curr = currRes
return currRes
Recursion:
class Solution:
def countAndSay(self, n: int) -> str:
def sayer(s,n):
if n == 1:
return s
res = ""
prev = s[0]
cnt = 1
for i in s[1:]:
if i != prev:
res += str(cnt) + prev
prev = i
cnt =1
else:
cnt+=1
res += str(cnt) + prev
return sayer(res,n-1)
return sayer("1",n)
Last updated
Was this helpful?