关注
改进了一下你的代码,虽然结果正确,但超时了 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; } } }
点赞
相关推荐
11-22 14:57
太原理工大学 线下拓展运营 点赞 评论 收藏
分享
11-19 12:10
湖南财政经济学院 Java 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
351541次浏览 3425人参与
# 我的实习求职记录 #
6084509次浏览 83673人参与
# 阿里云管培生offer #
41784次浏览 961人参与
# 地方国企笔面经互助 #
5183次浏览 13人参与
# 职场吐槽大会 #
90619次浏览 751人参与
# 选完offer后,你后悔学本专业吗 #
22966次浏览 165人参与
# 百度开奖 #
212949次浏览 1348人参与
# ai智能作图 #
3028次浏览 65人参与
# 运营商笔面经互助 #
92602次浏览 1333人参与
# 实习中的菜狗时刻 #
278765次浏览 2739人参与
# 腾讯求职进展汇总 #
199375次浏览 1661人参与
# 阿里求职进展汇总 #
70840次浏览 761人参与
# 如果有时光机,你最想去到哪个年纪? #
24638次浏览 502人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
37424次浏览 343人参与
# 风评不好的公司,你会去吗? #
20701次浏览 94人参与
# 上班苦还是上学苦呢? #
90416次浏览 780人参与
# 大疆求职进展汇总 #
413453次浏览 2934人参与
# 国企还是互联网,你怎么选? #
90124次浏览 699人参与
# 远程面试的尴尬瞬间 #
20438次浏览 295人参与
# 软件开发2024笔面经 #
2325555次浏览 48219人参与
# 如何一边实习一边秋招 #
999846次浏览 12697人参与
# 如果中了500万,你会离职吗? #
13508次浏览 145人参与