题解 | #正则表达式匹配#
正则表达式匹配
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;
}
}
}
家人们!快看过来!! 我这解法比官网解法还简洁!递归老好用了!就是费脑子。
安克创新 Anker公司福利 592人发布