关注
改进了一下你的代码,虽然结果正确,但超时了 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; } } }
点赞
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 除了Java,最推荐学什么技术? #
1352次浏览 52人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
1605次浏览 63人参与
# 你的landing期是如何度过的? #
1366次浏览 27人参与
# 滴滴求职进展汇总 #
298790次浏览 2445人参与
# 秋招报数:你投了多少家公司? #
148267次浏览 946人参与
# 机械制造面试点评 #
83933次浏览 471人参与
# 你觉得早上几点上班合适? #
94252次浏览 353人参与
# 机械人与华为的爱恨情仇 #
147139次浏览 1030人参与
# 机械只有转码才有出路吗? #
159315次浏览 1653人参与
# 我和mentor的爱恨情仇 #
102730次浏览 925人参与
# 你觉得什么岗位会被AI替代 #
35233次浏览 236人参与
# 你觉得mentor喜欢什么样的实习生 #
45373次浏览 989人参与
# 聊聊你的被动加班经历 #
8247次浏览 101人参与
# 如何提高实习转正率? #
80765次浏览 488人参与
# 实习期间如何提升留用概率? #
230913次浏览 1788人参与
# 秋招提前批,你开始投了吗 #
705659次浏览 8437人参与
# 面试常问题系列 #
268701次浏览 4687人参与
# 京东求职进展汇总 #
1138393次浏览 8519人参与
# 牛客十周岁生日快乐 #
207699次浏览 1937人参与
# 为了秋招你都做了哪些准备? #
31474次浏览 532人参与

查看2道真题和解析