自己写的,好像有点复杂:
class Solution: def wordPattern(self, pattern: str, s: str) -> bool: # 将字符串 s 按空格切分成单词列表 mystr = s.split() # 创建一个空字典,用于存储字符和其出现位置的映射 mydic = dict() # 将单词列表转换为集合,以便检查单词是否唯一 mystr_set = set(mystr) # 检查模式字符串和单词列表的长度是否相同,如果不同,则返回 False if len(mystr) != len(pattern): return False # 遍历模式字符串的每个字符 for index, char in enumerate(pattern): # 如果当前字符不在字典中,将其添加到字典并将其位置作为值 if char not in mydic: mydic.update({char: [index]}) else: # 如果当前字符已经在字典中,将其位置添加到对应字符的值列表中 mydic[char].append(index) # 检查字典中不同值的数量是否与单词集合的长度相同,如果不同,则返回 False if len(mydic) != len(mystr_set): return False # 检查每个字符在单词列表中的位置是否一致 for k, value_list in mydic.items(): for i in value_list: # 如果当前位置的单词与该字符的第一个位置的单词不同,则返回 False if mystr[i] == mystr[value_list[0]]: continue else: return False # 如果所有检查都通过,则返回 True return True
标签:字符,False,规律,leedcode,单词,mystr,字典,mydic From: https://www.cnblogs.com/yyyjw/p/18103714