假设我们有两个正整数n和d,其中d是0到9之间的一个数字。我们必须确定数字d在1和n之间的整数内出现多少次。
因此,如果输入类似n = 45,d = 5,则输出将为5。
这些数字的数字为5:[5、15、25、35、45]。
为了解决这个问题,我们将遵循以下步骤-
定义一个功能solve()。这将以n和d作为输入。
如果n <0,则
返回0
k:=(n / 10)− 1的下限
回答:= solve(k, d)* 10 + k + 1
如果d与0相同,则
ans:= ans − 1
m:=(n / 10)* 10的下限
当m <= n时
ans:= ans + m的字符串表示形式中d的字符串表示形式出现的次数。
m:= m +1
返回ans
现在从main函数调用函数-
值:= solve(n,d)
print(value)
让我们看下面的实现以更好地理解-
class Solution: def solve(self, n, d): if n < 0: return 0 k = n // 10 − 1 ans = self.solve(k, d) * 10 + k + 1 if d == 0: ans −= 1 m = n // 10 * 10 while m <= n: ans += str(m).count(str(d)) m += 1 return ans ob = Solution() print(ob.solve(45,5))
45, 5输出结果
5