def solution(phone_book):
phone_book.sort()
for i in range(len(phone_book)-1):
if phone_book[i+1].startswith(phone_book[i]) == True:
return False
return True
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
startswith
startwith은 어떤 문자열의 (시작~)이 어떤 문자열로 시작하는지 알려준다.
두 번째 인자로 시작, 세 번째 인자로 끝-1 을 설정할 수도 있다.
name = 'miniddo'
name.startswith('mi') // True
name.startswith('mi', 2, 4 ) // False
name.startswith('ddo') // False
in, not in
파이썬은 in과 not in을 사용하여 포함 여부를 알 수 있다.
s1 = 'welcome'
print('we' in s1) // True
print('come' in s1) // True
print('come' not in s1) // False
startswith와 in의 차이점은 startswith가 True가 나오기 위해서는 문자열의 시작점과 일치해야 한다는 것이다. in은 문자열이 해당 문자열에 들어있기만 하면 True값이 나온다.
zip
zip은 동일한 개수로 이루어진 자료형을 묶어주는 함수이다.
길이가 작은 것을 기준으로 묶는다.
list(zip([1, 2, 3], [4, 5, 6]))
// [(1, 4), (2, 5), (3, 6)]
list(zip([1, 2], [4, 5, 6]))
// [(1, 4), (2, 5)]
enumerate
enumerate는 순서가 있는 자료형(리스트, 튜플, 문자열)을 받아 인덱스와 값으로 리턴해준다.
for index, num in ['a', b', 'c']:
print(index, num)
// 0 'a'
// 1 'b'
// 2 'c'
def solution(phone_book):
phone_book.sort()
flag = True
for i in range(len(phone_book)-1):
if phone_book[i] in phone_book[i+1]:
flag = False
break
return flag