要实现不使用正则表达式的单词模式匹配,可以使用以下方法:
pattern_to_word
和word_to_pattern
来建立模式字符和单词字符之间的双向映射关系。def wordPattern(pattern, string):
pattern_chars = list(pattern)
string_words = string.split()
if len(pattern_chars) != len(string_words):
return False
pattern_to_word = {}
word_to_pattern = {}
for i in range(len(pattern_chars)):
pattern_char = pattern_chars[i]
word = string_words[i]
if pattern_char not in pattern_to_word:
pattern_to_word[pattern_char] = word
elif pattern_to_word[pattern_char] != word:
return False
if word not in word_to_pattern:
word_to_pattern[word] = pattern_char
elif word_to_pattern[word] != pattern_char:
return False
return True
pattern_to_word
来建立模式字符和单词之间的映射关系。used_words
来存储已经使用过的单词,用于判断是否有重复映射。def wordPattern(pattern, string):
pattern_chars = list(pattern)
string_words = string.split()
if len(pattern_chars) != len(string_words):
return False
pattern_to_word = {}
used_words = set()
for i in range(len(pattern_chars)):
pattern_char = pattern_chars[i]
word = string_words[i]
if pattern_char not in pattern_to_word:
if word in used_words:
return False
pattern_to_word[pattern_char] = word
used_words.add(word)
elif pattern_to_word[pattern_char] != word:
return False
return True
这两种方法都不使用正则表达式,通过字典和映射关系的方式来实现单词模式的匹配。