中小企业建站实战,html制作答题网页,wordpress阅读付费主题,wordpress加载不出图44. 通配符匹配#xff08;困难#xff09;
题目描述#xff1a; 给定一个字符串 (s) 和一个字符模式 #xff0c;实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。
‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串#xff08;包括空字符串#xff09;。 两个字…44. 通配符匹配困难
题目描述 给定一个字符串 (s) 和一个字符模式 § 实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。
‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串包括空字符串。 两个字符串完全匹配才算匹配成功。
说明:
s 可能为空且只包含从 a-z 的小写字母。 p 可能为空且只包含从 a-z 的小写字母以及字符 ? 和 *。
考察重点使用start记录出现位置match记录匹配i中子串的终止位置。如‘aaaab’与‘a*b’起始start1match1即*匹配空串之后依次match2,3,4。为4时s[4]p[2],循环终止。
public boolean isMatch(String s, String p) {int start -1;int match 0;int i 0, j 0;for(;i s.length();){if (j p.length() (p.charAt(j) ? || s.charAt(i) p.charAt(j))) {i;j;continue;} else if (j p.length() p.charAt(j) *) {start j;match i;j;}else if(start ! -1) {j start 1;match 1;i match;}elsereturn false;}for(;j p.length();j ){if(p.charAt(j) ! *)return false;}return true;}