trie

Python Trie樹實現字典排序

一般語言都提供了按字典排序的API,比如跟微信公眾平臺對接時就需要用到字典排序。按字典排序有很多種演算法,最容易想到的就是字串搜尋的方式,但這種方式實現起來很麻煩,效能也不太好。Trie樹是一種很常用的樹結構,它被廣泛用於各個方面,比如字串檢索、中文分詞、求字串最長公共字首和字典排序等等,而且在輸入 […]

Java中實現雙陣列Trie樹例項

傳統的Trie實現簡單,但是佔用的空間實在是難以接受,特別是當字符集不僅限於英文26個字元的時候,爆炸起來的空間根本無法接受。 雙陣列Trie就是優化了空間的Trie樹,原理本文就不講了,請參考An Efficient Implementation of Trie Structures,本程式的編寫 […]

簡單快速的 PHP 詞庫工具

這麼說吧,假如你有一段文字,還有一個巨大的關鍵詞庫(幾十萬起步),現在需要從文字中找出這些關鍵詞,甚至要基於關鍵詞對應的值做一些替換,怎麼弄? 在這個簡單又常見的需求面前,strtr str_replace preg_replace 什麼的集體歇菜了,因為詞庫太大。 scws?一開始我也這麼弄的,可 […]

C Trie樹:cedar

Trie樹主要分為兩類,一類是靜態的,一次性構建,構建完成後只讀,另一類是動態的,隨時可以加入新的key。當然,對於動態構建,其寫過程,是不一定保證執行緒安全的。對於trie的詳細分析,見這篇老外的文章:http://www.tkl.iis.u-tokyo.ac.jp/~ynaga/cedar/ 效 […]

425 Word Squares

題目描述請見leetcode 425 w a l l a r e a l e a d l a d y 在給定的詞典裡,找到一些單詞,組成一個square, 第i行和第i列一樣。(0,0) 這個點找到滿足條件的,我們選擇w。(0,1) 我們要滿足wa, a都可以作為開頭的部分。(0,2) 我們要滿足w […]