关注
改进了一下你的代码,虽然结果正确,但超时了 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; } } }
点赞
相关推荐


点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 国企秋招,你投了吗? #
20304次浏览 168人参与
# 工作后会跟朋友渐行渐远吗 #
37931次浏览 241人参与
# 乐堡互娱校招 #
30558次浏览 268人参与
# 你在职场中沾染到的“坏”习惯 #
16614次浏览 125人参与
# 应届生第一份工作最好去大厂吗? #
25659次浏览 485人参与
# 你的国庆怎么过 #
48320次浏览 493人参与
# 携程求职进展汇总 #
620762次浏览 4564人参与
# 秋招感动瞬间 #
27325次浏览 265人参与
# 贝壳求职进展汇总 #
29019次浏览 169人参与
# 怎么防止在试用期被辞退 #
138914次浏览 944人参与
# 你会为了工作牺牲生活吗? #
44622次浏览 361人参与
# 签约有哪些注意事项 #
46295次浏览 268人参与
# 海尔求职进展汇总 #
8611次浏览 37人参与
# 歌尔求职进展汇总 #
66160次浏览 353人参与
# ___岗狗都不干,我干! #
18676次浏览 128人参与
# 机械人值得去的国央企 #
77924次浏览 450人参与
# 入职跑路最快的一次经历 #
33315次浏览 221人参与
# 硬件开发岗知多少 #
17632次浏览 124人参与
# 机械只有转码才有出路吗? #
140560次浏览 1629人参与
# 校招谈薪技巧 #
48850次浏览 715人参与
# 通信硬件岗投递时间线 #
25960次浏览 88人参与
# 拿到offer之后,可以做些什么 #
33161次浏览 199人参与