题解 | #正则表达式匹配#
正则表达式匹配
https://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @param pattern string字符串 * @return bool布尔型 */ public boolean match (String s, String p) { if(p.isEmpty()){ return s.isEmpty(); } boolean headMatch =!s.isEmpty() && (s.charAt(0) == p.charAt(0) || p.charAt(0)=='.'); // s=ac*c ,p = b*ac*c ==> p = ac*c // s=bb*ac*c ,p = b*ac*c ==> s = b*ac*c //遇到* if(p.length() >= 2 && p.charAt(1) == '*' ){ return match(s,p.substring(2)) || (headMatch && match(s.substring(1),p)); }else if(headMatch){ //没遇到* return match(s.substring(1),p.substring(1)); }else{ return false; } } }
家人们!快看过来!! 我这解法比官网解法还简洁!递归老好用了!就是费脑子。