博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 10: Regular Expression Match
阅读量:6006 次
发布时间:2019-06-20

本文共 1721 字,大约阅读时间需要 5 分钟。

Recursive method:

class Solution {    public boolean isMatch(String s, String p) {        if (p.length() == 0) return s.length() == 0;                if (p.length() > 1 && p.charAt(1) == '*') {            if (isMatch(s, p.substring(2))) {                return true;            }                            if (s.length() > 0) {                return (s.charAt(0) == p.charAt(0) || p.charAt(0) == '.')  && isMatch(s.substring(1), p);            }        }                return s.length() > 0 && (s.charAt(0) == p.charAt(0) || p.charAt(0) == '.')  && isMatch(s.substring(1), p.substring(1));    }}

 

DP:

public class Solution {    public boolean isMatch(String s, String p) {       if (s == null || p == null) {           return false;       }        boolean[][] dp = new boolean[s.length() + 1][p.length() + 1];                dp[0][0] = true;        for (int i = 0; i < p.length(); i++) {            if (p.charAt(i) == '*' && dp[0][i-1]) {                dp[0][i+1] = true;            }        }                for (int i = 0; i < s.length(); i++) {            for (int j = 0; j < p.length(); j++) {                if (p.charAt(j) == '.' || p.charAt(j) == s.charAt(i)) {                    dp[i + 1][j + 1] = dp[i][j];                }                                if (p.charAt(j) == '*') {                    if (p.charAt(j - 1) != '.' && s.charAt(i) != p.charAt(j - 1)) {                        dp[i + 1][j + 1] = dp[i + 1][j - 1];                    } else {                        dp[i + 1][j + 1] = (dp[i + 1][j] || dp[i][j + 1] || dp[i + 1][j - 1]);                    }                }            }        }        return dp[s.length()][p.length()];    }}

 

转载于:https://www.cnblogs.com/shuashuashua/p/7338700.html

你可能感兴趣的文章
采集技术网址
查看>>
Spring JDBC 例子
查看>>
网上下载的 chm 文件打开后右侧内容显示空白
查看>>
MySQL——SQL Mode详解
查看>>
淡入淡出特效
查看>>
ThinkPHP CURD操作
查看>>
Duilib自定义控件响应指定命令(转载)
查看>>
Zabbix 监控 Nginx(四)
查看>>
drop user ora-604 ora-54
查看>>
ABAP WB01 BDC ”No batch input data for screen & &“ ”没有屏幕 & & 的批输入数据“
查看>>
JavaScript闭包的应用案例——让Onclick事件都能正确的弹出相应的参数
查看>>
边界测试——让BUG现形
查看>>
16个Javascript的Web UI库、框架及工具包
查看>>
[学习链接]infoQ与腾讯大讲堂
查看>>
吃知了有什么好处
查看>>
【AS3代码】数组知识
查看>>
【IBM Tivoli Identity Manager 学习文档】13 Service管理
查看>>
Oracle DB 备份和恢复的概念
查看>>
css
查看>>
多媒体开发之---h.264 rtsp网络流测试流
查看>>