두 개의 양의 정수 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의 바닥
-
ans :=풀기(k, d) * 10 + k + 1
-
d가 0과 같으면
-
ans :=ans − 1
-
-
m :=(n / 10) * 10의 바닥
-
동안 m <=n, 수행
-
ans :=ans + m의 stringrepresentation에서 d의 문자열 표현의 발생 횟수
-
m :=m + 1
-
-
반환
-
주 함수에서 이제 함수를 호출하십시오 -
-
값 :=해결(n,d)
-
인쇄(값)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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