关注
改进了一下你的代码,虽然结果正确,但超时了 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; } } }
点赞
相关推荐
点赞 评论 收藏
分享
查看30道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果秋招能重来,我会____ #
7619次浏览 75人参与
# 苦尽甘来时,再讲来时路 #
7501次浏览 138人参与
# “vivo”个offer #
16236次浏览 133人参与
# 如果上班像打游戏,你最想解锁什么技能 #
1821次浏览 30人参与
# 机械求职避坑tips #
70766次浏览 484人参与
# 为了实习逃课值吗? #
9994次浏览 91人参与
# 快手技术岗信息交流阵地 #
11828次浏览 73人参与
# 校招生月薪1W算什么水平 #
1963次浏览 18人参与
# 一份好的简历长什么样? #
5184次浏览 134人参与
# 选择和努力,哪个更重要? #
132905次浏览 1013人参与
# 秋招许愿,本周能____ #
12136次浏览 83人参与
# 班味很重的人是啥样的? #
3171次浏览 29人参与
# 投递无反馈,如何优化求职策略? #
1840次浏览 26人参与
# 材料专业可以靠半导体脱坑吗? #
26438次浏览 138人参与
# 应届生第一份工资要多少合适 #
2937次浏览 33人参与
# 机械制造秋招总结 #
81907次浏览 816人参与
# 大学最后一个寒假,我想…… #
59675次浏览 647人参与
# 职场新人体验 #
117366次浏览 809人参与
# 新凯来求职进展汇总 #
57527次浏览 150人参与
# 选完offer后,你后悔学机械吗? #
42535次浏览 248人参与
# 华为海思工作体验 #
33452次浏览 139人参与
# 25届非技术实习投递记录 #
134410次浏览 995人参与