상위 150개 인터뷰중간

디코드 방법

'디코드 방법' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

중간

A-Z의 문자가 포함된 메시지는 다음 매핑을 사용하여 숫자로 인코딩될 수 있습니다.

'A' -> "1"

'B' -> "2"

...

'Z' -> "26"

인코딩된 메시지를 디코딩하려면 모든 숫자를 그룹화한 다음 위의 역 매핑을 사용하여 다시 문자로 매핑해야 합니다. 예를 들어 "11106"은 다음과 같이 매핑될 수 있습니다.

- 그룹화(1 1 10 6)가 포함된 "AAJF"

- 그룹화(11 10 6)가 포함된 "KJF"

"6"은 "06"과 다르기 때문에 "06"을 'F'에 매핑할 수 없으므로 그룹화(1 11 06)는 유효하지 않습니다.

숫자만 포함된 문자열 s가 주어지면 이를 디코딩하는 방법의 수를 반환합니다.

numDecodings(s: str) -> int 함수를 작성하세요.

제약
  • 1 <= len(s) <= 100
  • s contains only digits and may contain leading zero(s)

Example 1
Input
s = "12"
Output
2
Explanation

"12" could be decoded as "AB" (1 2) or "L" (12).

Example 2
Input
s = "226"
Output
3
Explanation

"226" could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).

Example 3
Input
s = "06"
Output
0
Explanation

"06" cannot be mapped to 'F' because of the leading zero.

Need a Hint?
세트나 힙과 같은 1D DP 관련 데이터 구조를 사용해 보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.