算法:(五)字符串
(一)字符串題目的特色算法
①普遍性數組
- 字符串能夠看做字符類型的數組,與數組的排序、查找、調整有關
- 不少其餘類型的題可看做字符串類型的題
②須要掌握的概念數據結構
- 迴文
- 子串(連續)
- 子序列(不連續)
- 前綴樹(Trie樹)
- 後綴樹和後綴數組
- 匹配
- 字典序
③須要掌握的操做spa
- 與數組有關的操做:增刪改查
- 字符的替換
- 字符串的旋轉
(二)字符串題目的常見類型排序
①規則判斷字符串
- 判斷字符串是否符合整數規則
- 判斷字符串是否符合浮點數規則
- 判斷字符串是否符合迴文字符串規則
②數字運算搜索
- int和long類型表達整數範圍有限因此常常用字符串實現大整數,與大整數相關的加減乘除操做,須要模擬筆算的過程
③與數組操做有關的類型數據
- 數組有關的調整、排序等操做
- 快速排序的劃分過程要掌握和改寫
④字符計數動態規劃
- 哈希表
- 固定長度的數組(C/C++256長度,JAVA65536長度)
- 滑動窗口問題、尋找無重複字符子串問題、計算變位詞問題
⑤動態規劃類型哈希表
- 最長公共子串
- 最長公共子序列
- 最長迴文子串
- 最長迴文子序列
⑥搜索類型
⑦高級算法與數據結構解決的問題
- Manacher算法解決最長迴文子串問題
- KMP算法解決字符串匹配問題
- 前綴樹結構
- 後綴樹和後綴數組
歡迎關注本站公眾號,獲取更多信息