0x 사용자 이름
메시징 서비스를 사용하는 사람이 너무 많아서 모든 사용자 이름을 저장할 공간이 부족합니다! 이 문제를 해결하기 위해 가능한 경우 사용자 이름을 16 진수로 저장하기 시작합니다.
사용자 이름이 문자로만 구성된 0123456789ABCDEF
경우 (대소 문자 구분) 16 진수로 변환하여 정수로 저장할 수 있습니다. 예를 들어, 사용자 이름 ba5eba11
은 0xBA5EBA11
16 진수 정수 로 해석 될 수 있습니다 .
그러나 어떻 05AB1E
습니까? 그것은 앞에 0을 잃어 버릴 것입니다. 따라서 사용자 이름을 변환 할 때마다 1
정수로 읽기 전에 앞에 붙여야합니다 .
도전
비어 있지 않은 사용자 이름을 문자열로 지정하면 사용자 이름을 '헥사 압축'하는 프로그램이나 함수를 작성해야합니다.
- 16 진수 정수로 해석 될 수 있으면 1을 앞에 붙이고 16 진수로 해석 한 다음 결과 를 밑이 10으로 인쇄하십시오 .
- 그렇지 않으면 문자열을 수정하지 않고 반환하십시오.
이것은 code-golf 이므로 가장 짧은 솔루션 (바이트)이 이깁니다! 내장 된 기본 변환 기능이 허용됩니다.
테스트 사례
결과 정수가 언어의 표준 정수 범위 내에 있다고 가정 할 수 있습니다.
대부분의 메시징 시스템에서 사용자 이름과 마찬가지로 입력 문자열에는 영숫자와 밑줄 만 포함됩니다.
1
전환 전에 항상 선행을 추가해야합니다 .
"ba5eba11" -> 7421737489
"05AB1E" -> 17148702
"dec0de" -> 31375582
"Beef" -> 114415
"da7aba5e" -> 7960443486
"500" -> 5376
"DENNIS" -> "DENNIS"
"Garth" -> "Garth"
"A_B_C" -> "A_B_C"
"0x000" -> "0x000"
참고로, 테스트 사례에 사용 된 Python 3 구현은 다음과 같습니다.
import re
def convert_name(name):
if re.fullmatch('^[0-9A-Fa-f]+$', name):
return int('1' + name.upper(), base = 16)
else:
return name