조부모님의 날에는 다음과 같이 로터리 다이얼 로 전화 번호를 다이얼링했습니다 .
각 자리에 전화를 걸려면 손가락을 해당 구멍에 넣고 손가락 멈춤 쇠 위로 당겨 분리하십시오. 메커니즘을 사용하면 다이얼이 정지 위치로 돌아가고 전화기가 지정된 횟수만큼 회로를 분리했다가 다시 연결하여 딸깍 소리가납니다.
디지트 다이얼링 N은 요구 N N = 용 펄스 열 0를 제외하고, 그러한 "펄스".
로타리 전화는 큰 숫자 (8, 9, 0)가 작은 숫자 (1, 2, 3)보다 전화 걸기 시간이 더 오래 걸립니다. 이것은 초기 지역 코드 맵을 작성하는 데 중요한 고려 사항이었으며 인구 및 전화선 밀도가 높은 뉴욕시가 212 (5 펄스 만 )를 얻었고 907 (26 펄스)이 알래스카에 드문 드문 이유는 무엇입니까 ? 물론, 터치 톤 다이얼링이 대중화되었을 때이 모든 것이 무의미 해졌습니다.
도전
전화 번호가 포함 된 문자열 (또는 문자 시퀀스)을 입력으로 사용하고 로터리 다이얼 펄스 수를 출력하는 프로그램 또는 함수를 가능한 한 적은 바이트로 작성하십시오. 이들은 다음과 같이 계산됩니다.
숫자
- 숫자 1-9는 해당 펄스 수로 계산됩니다.
- 숫자 0은 10 펄스로 계산됩니다.
편지
다이얼의 숫자 2-9에는 연관된 라틴 알파벳 문자가 있습니다. 이것들은 원래 명명 된 교환을 위한 것이 었지만 후자는 전화 번호 및 문자 메시지 입력 시스템에 다시 적합했습니다 .
E.161 문자를 숫자로 할당 하여 전화 번호에 문자를 지원해야합니다 .
- A, B, C = 2
- D, E, F = 3
- G, H, I = 4
- J, K, L = 5
- M, N, O = 6
- P, Q, R, S = 7
- T, U, V = 8
- W, X, Y, Z = 9
입력이 대소 문자로 이미 접혀 있다고 가정 할 수 있습니다.
다른 캐릭터
문자 및 공백을 서식 구분 기호로 임의로 사용할 수 있어야합니다()+-./ . 당신은 할 수 있도록하기로 결정했습니다 모든 것이 구현하기가 쉽다 경우,이 목적을 위해 영숫자가 아닌 문자를.
이 문자는 펄스 수에 영향을 미치지 않습니다.
예제 코드
파이썬에서 골프가 아닌 조회 테이블 및 함수 :
PULSES = {
'1': 1,
'2': 2, 'A': 2, 'B': 2, 'C': 2,
'3': 3, 'D': 3, 'E': 3, 'F': 3,
'4': 4, 'G': 4, 'H': 4, 'I': 4,
'5': 5, 'J': 5, 'K': 5, 'L': 5,
'6': 6, 'M': 6, 'N': 6, 'O': 6,
'7': 7, 'P': 7, 'Q': 7, 'R': 7, 'S': 7,
'8': 8, 'T': 8, 'U': 8, 'V': 8,
'9': 9, 'W': 9, 'X': 9, 'Y': 9, 'Z': 9,
'0': 10
}
def pulse_count(phone_num):
return sum(PULSES.get(digit, 0) for digit in phone_num)
입력 및 출력 예
911→ 11867-5309→ 48713 555 0123→ 42+1 (212) PE6-5000→ 571-800-FLOWERS→ 69PUZZLES→ 48
*및 #터치 톤 전화에 특별한 의미를 가지고 로터리에 전화를 걸 수 없습니다하는.
+- ()*#.문자가 대문자로 제한되는 것처럼 전화 번호 ( )에 일반적으로 사용되는 것으로 제한 된다고 가정합니다 . 틀 렸으면 말해줘.