关注
改进了一下你的代码,虽然结果正确,但超时了 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; } } }
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招进度记录 #
48145次浏览 375人参与
# 你的实习什么时候入职 #
137474次浏览 1310人参与
# Keep实习校招 #
2350次浏览 76人参与
# 实习进度记录 #
49154次浏览 386人参与
# 你知道哪些职场黑话? #
26137次浏览 195人参与
# 你想吐槽公司的哪些规定 #
11893次浏览 42人参与
# 软开人,说说你的烦心事 #
36362次浏览 236人参与
# 汇川技术求职进展汇总 #
115731次浏览 791人参与
# 总结:哪家公司最喜欢泡池子 #
119574次浏览 434人参与
# 毕业后不工作的日子里我在做什么 #
154076次浏览 1329人参与
# 淘天集团工作体验 #
5499次浏览 28人参与
# 金融银行面经 #
66157次浏览 506人参与
# 打工人的工作餐日常 #
31682次浏览 286人参与
# 诺瓦星云求职进展汇总 #
188640次浏览 1624人参与
# 小鹏汽车工作体验 #
6771次浏览 44人参与
# 一觉醒来,秋招难度下降一万倍…… #
61396次浏览 535人参与
# 机械人,你的第一份感谢信是谁给的 #
21804次浏览 278人参与
# 打工人的精神状态 #
39508次浏览 781人参与
# 新年的第一句祝福 #
33349次浏览 366人参与
# 参加完秋招的机械人,还参加春招吗? #
38490次浏览 461人参与
# 机械制造秋招总结 #
47121次浏览 462人参与