字典树的实现
class Trie:
def __init__(self):
self.root = {}
self.end_of_word = '#'
def insert(self, chars):
node = self.root
for char in chars:
node = node.setdefault(char, {})
node[self.end_of_word] = self.end_of_word
def serach(self, chars):
node = self.root
for char in chars:
if char not in node:
return False
node = node[char]
return self.end_of_word in node
def startsWith(self, prefix):
node = self.root
for char in prefix:
if char not in node:
return False
node = node[char]
return True
朴素字符串匹配算法
def naive_match(source, target):
m = len(source)
n = len(target)
for i in range(m-n+1):
if source[i:i+n] == target:
return True
return False
# if target in source:
# return True
# else:
# return False
print(naive_match('abcdefghijk', 'cdefg'))