关注
改进了一下你的代码,虽然结果正确,但超时了 import java.util.*; import java.util.regex.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ String s1 = in.nextLine().toLowerCase(); String s2 = in.nextLine().toLowerCase(); System.out.println(helper(s1, s2, 0, 0)); } } private static boolean helper(String s1, String s2, int p1, int p2){ String pattern="[^0-9^a-z^A-Z]"; //base case if (p1 == s1.length() && p2 == s2.length()){ return true; }else if (p1 == s1.length() || p2 == s2.length()){ return false; } //遇到'*'两种情况,要不就各跳过一个比较后面,要不就s2继续往后跳先不比较 //加入正则表达式,匹配到不合法就false,以及添加匹配0个字符 if (s1.charAt(p1) == '*'){ boolean ismatch=Pattern.matches(pattern,s2.charAt(p2)+""); if(ismatch) return false; return helper(s1, s2, p1, p2+1) || helper(s1, s2, p1+1, p2+1)||helper(s1, s2, p1+1, p2); //遇到'?'跟两个一样操作一样,直接指针都往后移一个继续比较 }else if (s1.charAt(p1) == '?'){ boolean ismatch=Pattern.matches(pattern,s2.charAt(p2)+""); if(ismatch) return false; return helper(s1, s2, p1+1, p2+1); }else if(s1.charAt(p1) == s2.charAt(p2)){ return helper(s1, s2, p1+1, p2+1); }else { return false; } } }
点赞
相关推荐
牛客热帖
更多
正在热议
更多
# 你认为小厂实习有用吗? #
22880次浏览 263人参与
# 运营面经 #
116045次浏览 1254人参与
# 如果公司给你放一天假,你会怎么度过? #
15142次浏览 107人参与
# 秋招最大的收获是什么? #
36323次浏览 310人参与
# 硬件人秋招的第一个offer #
80416次浏览 1155人参与
# 三一重工求职进展汇总 #
13687次浏览 62人参与
# 硬件人,你被哪些公司给挂了 #
59306次浏览 827人参与
# 你的领导最像哪种动物,为什么? #
14756次浏览 107人参与
# 总结:哪家公司面试体验感最差 #
59760次浏览 268人参与
# 说说你知道的学历厂 #
43446次浏览 265人参与
# 材料人,你们签了哪个公司 #
7693次浏览 18人参与
# 实习生的蛐蛐区 #
59677次浏览 429人参与
# 如果重来一次你还会读研吗 #
176161次浏览 1780人参与
# 哪一瞬间觉得自己长大了 #
11240次浏览 247人参与
# 烟草笔面经互助 #
17999次浏览 184人参与
# 面试尴尬现场 #
35293次浏览 233人参与
# 计算机有哪些岗位值得去? #
18417次浏览 166人参与
# 你找工作的时候用AI吗? #
20398次浏览 244人参与
# 下班后的时间你怎么安排 #
11220次浏览 150人参与
# 电网笔面经互助 #
37153次浏览 359人参与