給定乙個較長字串big和乙個包含較短字串的陣列smalls,設計乙個方法,根據smalls中的每乙個較短字串,對big進行搜尋。輸出smalls中的字串在big裡出現的所有位置positions,其中positions[i]為smalls[i]出現的所有位置
輸入:big = "mississippi"
smalls = ["is","ppi","hi","sis","i","ssippi"]
輸出: [[1,4],[8],,[3],[1,4,7,10],[5]]
使用字首樹,用smalls構建一顆字首樹,然後在big中遍歷,為了減少結尾的討論,可以加上乙個其他非字母
big += "^"
class trie:
def __init__(self):
self.root = {}
def insert(self, word, num):
cur = self.root
for w in word:
if w not in cur:
cur[w] = {}
cur = cur[w]
cur['#'] = num
class solution:
def multisearch(self, big: str, smalls: list[str]) -> list[list[int]]:
trie = trie()
root = trie.root
for i in range(len(smalls)):
trie.insert(smalls[i],i)
big += '^'
res = [ for _ in range(len(smalls))]
for i in range(len(big)):
if big[i] in root:
cur = root[big[i]]
for j in range(i+1, len(big)):
if '#' in cur:
if big[j] in cur:
cur = cur[big[j]]
else:
break
return res
lc17 17字串多次搜尋
題目 給定乙個較長字串big和乙個包含較短字串的陣列smalls,設計乙個方法,根據smalls中的每乙個較短字串,對big進行搜尋。輸出smalls中的字串在big裡出現的所有位置positions,其中positions i 為smalls i 出現的所有位置。lc17.17字串多次搜尋 ac ...
面試題 PHP面試題
建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...
面試題 騰訊2012面試題
問題描述 例如手機朋友網有n個伺服器,為了方便使用者的訪問會在伺服器上快取資料,因此使用者每次訪問的時候最好能保持同一臺伺服器。已有的做法是根據serveripindex qqnum n 得到請求的伺服器,這種方法很方便將使用者分到不同的伺服器上去。但是如果一台伺服器死掉了,那麼n就變為了n 1,那...