문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
"a234" | false |
"1234" | true |
내가 푼 풀이
def solution(s):
if len(s) == 4 or len(s) == 6:
try:
s = int(s)
return True
except:
return False
else:
return False
다른 사람의 풀이
def alpha_string46(s):
return s.isdigit() and len(s) in (4, 6)
'len(s) 값이 [4,6]리스트에 포함되어 있나' 라는 코드라서 4또는 6맞습니다. 그나저나 isdigit라는 함수가 있었네요... 또 한 수 배워갑니다 ^-^
def alpha_string46(s):
import re
return bool(re.match("^(\d{4}|\d{6})$", s))
chae // ^와 $는 문자열의 처음과 끝을 의미합니다. \d는 숫자를 의미하구요, {4}|{6}은 숫자가 4번 혹은 6번 반복되는 것을 찾는 거구요, 결과를 bool로 true/false로 리턴하게 하는 코드입니다
오~~~ regex 세계 !!
'STUDY 기록 > 코테기록' 카테고리의 다른 글
[프로그래머스]문자열 내 마음대로 정렬하기 (0) | 2022.06.20 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2022.06.20 |
[프로그래머스]서울에서 김서방 찾기 (0) | 2022.06.20 |
[프로그래머스] 수박수박수박수박수박수? (0) | 2022.06.20 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2022.06.20 |
댓글