博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode44
阅读量:7190 次
发布时间:2019-06-29

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

1 public boolean isMatch(String text, String pattern) { 2         // 多一维的空间,因为求 dp[len - 1][j] 的时候需要知道 dp[len][j] 的情况, 3         // 多一维的话,就可以把 对 dp[len - 1][j] 也写进循环了 4         boolean[][] dp = new boolean[text.length() + 1][pattern.length() + 1]; 5         // dp[len][len] 代表两个空串是否匹配了,"" 和 "" ,当然是 true 了。 6         dp[text.length()][pattern.length()] = true; 7  8         // 从 len 开始减少 9         for (int i = text.length(); i >= 0; i--) {10             for (int j = pattern.length(); j >= 0; j--) {11                 // dp[text.length()][pattern.length()] 已经进行了初始化12                 if (i == text.length() && j == pattern.length())13                     continue;14                 //相比之前增加了判断是否等于 * 15                 boolean first_match = (i < text.length() && j < pattern.length() && (pattern.charAt(j) == text.charAt(i) || pattern.charAt(j) == '?' || pattern.charAt(j) == '*'));16                 if (j < pattern.length() && pattern.charAt(j) == '*') {17                     //将 * 跳过 和将字符匹配一个并且 pattern 不变两种情况18                     dp[i][j] = dp[i][j + 1] || first_match && dp[i + 1][j];19                 } else {20                     dp[i][j] = first_match && dp[i + 1][j + 1];21                 }22             }23         }24         return dp[0][0];25     }

参考:

转载于:https://www.cnblogs.com/asenyang/p/10496280.html

你可能感兴趣的文章
Elastic Search Java Api 创建索引结构,添加索引
查看>>
Password
查看>>
文件操作练习之统计目录大小
查看>>
在vs2010 .net 4.0 引用dll .net 2.0(转)
查看>>
【JAVA练习】- 接收三个班各四个学员的成绩,算平均分
查看>>
Python3新特性 类型注解 以及 点点点
查看>>
【解决】node的环境变量
查看>>
Can’t connect to local MySQL server through socket的解决方法
查看>>
<input type="file">上传文件
查看>>
图论总结
查看>>
找倍数(回溯)
查看>>
JS执行模糊搜索
查看>>
重学JAVA基础(六):多线程的同步
查看>>
十天冲刺之八
查看>>
Arrays.asList 为什么不能 add 或者 remove 而 ArrayList 可以
查看>>
python GUI初步
查看>>
openstack4j接口调试
查看>>
内核分析阅读笔记
查看>>
安卓手机当Transmission下载机、FTP、要点总结
查看>>
移动端无缝滚动兼拖动插件
查看>>