關於python最大遞歸深度 - 998
阿新 • • 發佈:2018-04-30
one block init print class tin 問題: 問題 bject
今天LeetCode的時候暴力求解233
- 問題:
給定一個整數 n,計算所有小於等於 n 的非負數中數字1出現的個數。
例如:
給定 n = 13,
返回 6,因為數字1出現在下數中出現:1,10,11,12,13。
- 代碼:
class Solution:
def __init__(self):
self.key = ‘1‘
self.result = 0
def countDigitOne(self, n):
"""
:type n: int
:rtype: int
"""
if n < 1:
return self.result
self.result += str(n).count(self.key)
if n > 0:
self.countDigitOne(n-1)
return self.result
s = Solution()
print(s.countDigitOne(11221))
- 錯誤:
maximum recursion depth exceeded while getting the str of an object
- 尋找python最大遞歸深度
class Solution:
def __init__(self):
self.key = ‘1‘
self.result = 0
def countDigitOne(self, n):
"""
:type n: int
:rtype: int
"""
if n < 1:
return self.result
self.result += str(n).count(self.key)
if n > 0:
self.countDigitOne(n-1)
return self.result
s = Solution()
for i in range(0,1000000):
print(i)
print(s.countDigitOne(i))
輸出 998,然後報錯,最大遞歸深度找到了,還是安心用while吧~
關於python最大遞歸深度 - 998