字串——正規表示式匹配
請實現一個函式用來匹配包括”.”和”*”的正規表示式。
模式中的字元”.”表示任意一個字元,而”*”表示它前面的字元可以出現任意次(包含0次)。
在本題中,匹配是指字串的所有字元匹配整個模式。
例如,字串”aaa”與模式”a.a”和”ab*b*ac*a”匹配,但是與”aa.a”和”ab*a”均不匹配
當模式中的下一個字元不是”*”時:
如果字串當前字元和模式中的當前字元相匹配,那麼字串指標和模式指標都後移一個字元,然後匹配剩餘的。
如果字串當前字元和模式中當前字元不匹配,直接返回false。
當模式中的下一個是”*”時:
如果字串當前字元跟模式當前字元不匹配,則模式指標後移2個字元,繼續匹配。
如果字串當前字元跟模式當前字元匹配,可以有3種匹配方式:
1、模式指標後移2字元,相當於x*被忽略;
2、字串指標後移1字元,模式指標後移2字元;
3、字串指標後移1字元,模式不變,即繼續匹配字元下一位,因為*可以匹配多位;
相關文章
- 演算法之字串——正規表示式匹配演算法字串
- 匹配雙位元組字串的正規表示式字串
- 正規表示式裡字串”不包含”匹配技巧字串
- 匹配不包含字母的字串的正規表示式字串
- 正規表示式匹配原理
- [譯]正規表示式匹配
- iOS正規表示式匹配iOS
- Python正規表示式匹配字串中的數字Python字串
- 正規表示式如何匹配不包含指定字元的字串字元字串
- 正規表示式支配匹配模式模式
- JavaScript匹配中文正規表示式JavaScript
- 模式匹配與正規表示式模式
- Swift 正規表示式匹配NSRegularExpressionSwiftExpress
- python 正規表示式匹配Python
- 匹配html標籤正規表示式HTML
- 匹配空白字元正規表示式字元
- 匹配 XML 檔案正規表示式XML
- 匹配 HTML 標籤正規表示式HTML
- leetcode - 正規表示式匹配LeetCode
- 匹配空行正規表示式程式碼
- 常用正規表示式匹配模式(java)模式Java
- JavaScript匹配註釋正規表示式JavaScript
- 第七章——字串(簡單的正規表示式匹配器)字串
- [JavaScript] 正規表示式單次匹配與多次匹配JavaScript
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 匹配iphone手機序列正規表示式iPhone
- 匹配HTML註釋的正規表示式HTML
- 匹配A股程式碼的正規表示式
- 正規表示式匹配標點符號符號
- 匹配HTML標籤的正規表示式HTML
- 正規表示式匹配雙位元組字元字元
- js正規表示式如何匹配註釋JS
- 匹配javascript註釋的正規表示式JavaScript
- Oracle正規表示式匹配中文的方法Oracle
- 匹配正負小數正規表示式程式碼
- 匹配視訊連結地址正規表示式
- 匹配純英文字元正規表示式字元
- 劍指offer——正規表示式匹配C++C++