leetcode Regular Expression Matching(Java)

来源:互联网 发布:ug安装java虚拟机 编辑:程序博客网 时间:2024/05/22 04:24

题目链接:点击打开链接

类型:双字符串处理

解法:递归

public class Solution {    public boolean isMatch(String s, String p) {if (p.length() < 1)return s.length() == 0;if (p.length() == 1)return (s.length() == 1) && (s.charAt(0) == p.charAt(0) || p.charAt(0) == '.');if (p.charAt(1) != '*'){if (s.length() < 1)return false;return  (s.charAt(0) == p.charAt(0) || p.charAt(0) == '.') && isMatch(s.substring(1), p.substring(1));}else{if (isMatch(s, p.substring(2)))return true;int i = 0;while (i<s.length() && (s.charAt(i) == p.charAt(0) || p.charAt(0) == '.')){if (isMatch(s.substring(i+1), p.substring(2)))return true;++i;}return false;}    }}


原创粉丝点击