Run 3 times and the best one is 48ms 83%

- Conversion from int to list of digits is done by keeps divmod the

number by 10. - Every time after the sum of squares, make a check to see if we got number 1. If so, the original number is a happy number. if not, check if the result has been seen before. Getting a seen number means we are in a loop thus we return

False. - if we get a un-seen result, we just save it to the seen list and

apply the function recursively to it.

```
class Solution(object):
def __init__(self):
self.seen = []
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
digi = []
while n > 9:
n, r = divmod(n, 10)
if r != 0:
digi.append(r)
digi.append(n)
new_n = sum(map(lambda x: x**2, digi))
if new_n == 1:
return True
elif new_n in self.seen:
return False
else:
self.seen.append(new_n)
return self.isHappy(new_n)
```