[LeetCode 간단한 문제] 87. - N번 숫자.
설명:
오늘은 87번째 문제다.무한한 정수 서열 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,...에서 n번째 숫자를 찾습니다.아래의 모든 코드는 건물주 검증을 거쳐LetCode에서 성공적으로 실행될 수 있고 코드도 다른 사람을 참고할 수 있다. 문장 마지막에 참고한 블로그 링크를 첨부할 것이다. 만약에 블로거의 관련 권익을 침해하면 저에게 연락하여 삭제해 주십시오.
(수동 비심)
본문
제목: 무한한 정수 서열 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11...에서 n번째 숫자를 찾습니다.
주의: n은 정수이며 정형 범위 내에 있습니다 (n < 2^31).
예1:
:
3
:
3
예2:
:
11
:
0
:
11 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 0, 10 。
해법통계를 통해 한 자릿수는 9개, 두 자릿수는 90개, 세 자릿수는 900개라는 것을 알 수 있다. 그러므로 먼저 하나의 순환으로 n이 있는 구간을 찾아내고 어느 숫자인지 해석한다. 코드는 다음과 같다.
실행시: 24ms, Nth Digit의 Python 제출에서 98.20%의 사용자를 처치
class Solution(object):
def findNthDigit(self, n):
"""
:type n: int
:rtype: int
"""
digits = 1
base = 9
ith = 1
while n > base*digits:
n -= base*digits
digits += 1
ith += base
base *= 10
# ith+(n-1)/digits ,[(n-1)%digits]
return int(str(ith + (n-1)/digits)[(n-1)%digits])
엔딩
해법 1:https://blog.csdn.net/liuxiao214/article/details/77949837
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.