Ежедневный вопрос по алгоритму — leetcode 290 — правила слов — python

алгоритм
Ежедневный вопрос по алгоритму — leetcode 290 — правила слов — python

【Название Описание】

【Анализ мышления】

Словарь используется для установления соответствующей связи между шаблоном и строкой.Когда есть проблема, что соответствующая связь не соответствует, это означает, что она не соответствует. Временная сложность этого метода составляет O(n).

【Исходный код】

class Solution:
    def wordPattern(self, pattern: str, str: str) -> bool:
        if len(pattern)-1!=str.count(' '):
            return False
        str_list=str.split(' ')
        dic={}
        for i,val in enumerate(pattern):
            if(val not in dic.keys()):
                if(str_list[i] in dic.values()):
                    return False
                else:
                    dic[val]=str_list[i]
            else:
                if(dic[val]!=str_list[i]):
                    return False    
        return True