最少插入字元;及分詞問題分析
今日面試題:最少插入字元
給定字串,可以通過插入字元,使其變為迴文。求最少插入字元的數量。例如:
1. ab最少插入1個字元,變為bab
2. aa最少插入0個字元
3. abcd最少插入3個字元,dcbabcd
============================================================
分詞問題分析
原題
給定字串,以及一個字典,判斷字串是否能夠拆分為欄位中的單詞。例如,欄位為{hello,world},字串為hellohelloworld,則可以拆分為hello,hello,world,都是字典中的單詞。
分析
這個題目喚作“分詞問題”,略顯寬泛。只是想提及這個問題,這是在自然語言處理,搜尋引擎等等領域中,非常基礎的一個問題,解決的方法也比較多,相對比較成熟,不過這仍舊是一個值得進一步探索的問題。那我們先從這個簡單的題目入手,看看如何處理題目中這個問題。 最直接的思路就是遞迴,很簡單。我們考慮每一個字首,是否在字典中?如果在,則遞迴處理剩下的字串,如果不在;則考慮其他字首。示例程式碼如下:
在上面的程式碼中:每一種情況都要處理substr,程式的耗時比較長,如果在OJ上提交,乾脆超時的,那麼如何改進呢?
這個題目的處理,上期的題目是很相似的。在遞迴子問題中,找重複的子問題。也非常明顯,如下圖(圖片來自GeeksforGeeks)所示:
所以,通過動態規劃的方法,可以通過有較大幅度的提升,同樣,這個題目與前面的每一個狀態都有關係的,所以,是一個二重迴圈,時間複雜度為O(n^2)。示例程式碼如下:
除此之外,這個問題的方法是非常多的,大家還有什麼思路呢?歡迎大家展開思路,在微博上互動討論。 經過上一期的問題,還有這一期的,我想對於這類問題,遞迴以及動態規劃方法的改進,童鞋們應該有比較好的體會了。希望大家能多做寫聯絡,比如在OJ上,熟能生巧,提升程式碼功力。
【分析完畢】
本文來自微信:待字閨中,2013-10-15釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- LIS問題;及最少插入字元分析字元
- 分詞問題;及最大乘積分析分詞
- 詞法分析的前奏:字元分析(三)詞法分析字元
- 字元編碼常識及問題解析字元
- 華為機試題-刪除出現次數最少的字元字元
- [python] LDA處理文件主題分佈及分詞、詞頻、tfidf計算PythonLDA分詞
- 5-順序表查詢及插入問題
- 向表中插入中文字元,查詢時亂碼問題字元
- 【字元編碼】Java字元編碼詳細解答及問題探討字元Java
- 基於關鍵詞及問題主題的問題相似度計算
- 中文分詞原理及常用Python中文分詞庫介紹中文分詞Python
- 資料插入問題。
- Hanlp分詞之CRF中文詞法分析詳解HanLP分詞CRF詞法分析
- 【char* 字元指標的用法】及【輸出NULL的問題】字元指標Null
- Mysql設定字元編碼及varchar寬度問題MySql字元
- Powerpoint常見問題及對策之如何插入公式公式
- 刪除字元;及interleave字串分析字元字串
- 字元編碼問題字元
- 自然語言處理中的分詞問題總結自然語言處理分詞
- 動態規劃-最少硬幣組合問題動態規劃
- dg broker配置的問題及分析
- sql重複插入問題SQL
- Notepad++和Sublime單詞首字元大小寫轉化問題字元
- BZOJ 1633 [Usaco2007 Feb]The Cow Lexicon 牛的詞典:dp【刪字元最少】字元
- 迴文分割;及刪除字元分析字元
- ArrayList 原始碼分析 — 擴容問題及序列化問題原始碼
- ArrayList 原始碼分析 -- 擴容問題及序列化問題原始碼
- CAS原理分析及ABA問題詳解
- Jedis介紹及常見問題分析
- 數對數目;及LIS問題分析
- 曲折的dump匯入及問題分析
- ERP存在問題及風險分析(轉)
- 金山詞霸取詞pdf檔案問題
- iOS中文近似度的演算法及中文分詞(結巴分詞)的整合iOS演算法中文分詞
- nlp基礎之詞、子詞或字元字元
- 大資料語義分析:靈玖中文分詞的分詞處理大資料中文分詞
- 掌握 analyze API,搞定分詞難題API分詞
- AWD平臺搭建及遇到的問題分析