單詞查詢樹trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。
python函式引用傳遞
列表、字典、集合:按引用傳入函式
def change(mylist):
mylist[0:2]=[2,3]
mylist = [11,22,33,44]
print()
change(mylist)
print(mylist)
[2, 3, 33, 44]
#node:[計數,子樹]
def refreshtrienode(prevchar,nextchar,nownode,isendchar):
if prevchar in nownode.keys() and (not nownode[prevchar][1] is none):
if nextchar in nownode[prevchar][1].keys():
if isendchar:
nownode[prevchar][1][nextchar][0]+=1
newnode=nownode[prevchar][1]
else:
if isendchar:
newnodedata=[1,none]
else:
newnodedata=[0,none]
nownode[prevchar][1][nextchar]=newnodedata
newnode=nownode
else:
if isendchar:
newnode=
else:
newnode=
nownode[prevchar][1]=newnode
return newnode,nextchar
def searchtrienode(prevchar,nextchar,nownode,isendchar):
if (not nownode is none) and prevchar in nownode.keys():
newnode=nownode[prevchar][1]
if not newnode is none:
if nextchar in newnode.keys():
if isendchar:
if newnode[nextchar][0]>0:
return newnode,nextchar,false,true,newnode[nextchar][0]#,,continue,finded
else:
return newnode,nextchar,true,false,none#,,continue,finded
return none,none,false,false,none#,,continue,finded
#code:劉興,
def test():
words=["ab","ab","ad","adcd","add"]
print(words)
rootnode=
for word in words:
node=rootnode
prevchar="root"
for i in range(len(word)):
if i==len(word)-1:
isendchar=true
else:
isendchar=false
char=word[i]
node,prevchar=refreshtrienode(prevchar,char,node,isendchar)
print("===")
print(rootnode)
print("---")
words=["aa","ab","addd","abc","ad","adcd"]
for word in words:
node=rootnode
prevchar="root"
for i in range(len(word)):
if i==len(word)-1:
isendchar=true
else:
isendchar=false
char=word[i]
node,prevchar,iscontinue,isfind,wc=searchtrienode(prevchar,char,node,isendchar)
if not iscontinue:
if isfind:
print(f"找到,共有個。")
else:
print(f"找不到")
break
test()
['ab', 'ab', 'ad', 'adcd', 'add']
===], 'd': [1, none]}]}]}]}
---找不到aa
找到ab,共有2個。
找不到addd
找不到abc
找到ad,共有1個。
找到adcd,共有1個。
演算法題2 最長公共字首(python3實現)
編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母a z。def longestcommonpref...
最長公共字首 python
class solution def longestcommonprefix self,strs list str str ifnot strs return strs.sort 這應該是最重要的一步了,給陣列中的各個字串排序,排序之後的第乙個最短,最後乙個最長,所以直接拿第乙個和最後乙個比較就好了...
Python 最長公共字首
最長公共字首 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 方法1 主要思路是取出所有...