java--10正则表达式匹配

java 刷题10--正则表达式匹配

题目

java--10正则表达式匹配

代码

class Solution {
    public boolean isMatch(String s, String p) {
        int sLen = s.length(), pLen = p.length();
		boolean[][] memory = new boolean[sLen+1][pLen+1];
		memory[0][0] = true;
		for(int i = 0; i <= sLen; i++) {
			for(int j = 1; j <= pLen; j++) {
				if(p.charAt(j-1) == '*') {
					memory[i][j] = memory[i][j-2]||(i > 0 && (s.charAt(i-1) == p.charAt(j-2)||p.charAt(j-2) == '.') && memory[i-1][j]);		
				}else memory[i][j] = i > 0 && (s.charAt(i-1) == p.charAt(j-1) || p.charAt(j-1) == '.')&& memory[i-1][j-1];			
			}//内循环结束
		}//外循环结束
		return memory[sLen][pLen];
    }
}

运行结果及解析

java--10正则表达式匹配
java--10正则表达式匹配

上一篇:剑指Offer(67)把字符串转换成整数


下一篇:让字符串成为回文串的最少插入次数