電話番号リスト


問題は..。


この問題は電話番号を並べてから、
ある電話番号が別の電話番号の先頭部分と一致する場合、falseが返されます.
このようなことがなければ、trueに戻ります.

私の答えは

re 모듈を利用して、이중 for문で徹底的な探索を行いました.
from re import match

def solution(phone_book):
    phone_nums = sorted(phone_book,key=len)
    
    for i in range(len(phone_nums)-1):
        for j in range(i+1,len(phone_nums)):
            if match(phone_nums[i], phone_nums[j]):
                return False

    return True
これは簡単に解決できますが、この問題はhashカテゴリにあるのでhashで解決しようとしましたが、成功しませんでした.
そのため、他の人のプールを格納します.

他人の解答


この方式はハッシュで実現された.
def solution(phone_book):
    answer = True
    phone_nums = {}
    
    for i in phone_book:
        phone_nums[i] = 1
    
    for number in phone_book:
        temp = ''
        for char in number:
            temp += char
            if temp and temp in phone_nums and temp != number:
                return False
    return True