关注
public class Main {
public static void main(String[] args) {
ArrayList<Integer> inputs = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String pattern=in.nextLine();
System.out.println(resolve(str, pattern));
in.close();
}
// write your code here
public static int resolve(String str,String pattern) {
if(!pattern.contains("*"))
return match(str,pattern);
boolean dp[][]=new boolean[str.length()+1][pattern.length()+1];
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
dp[i][j]=false;
}
}
dp[0][0]=true;
for(int i=1;i<=str.length();i++){
for(int j=1;j<=pattern.length();j++){
char s=str.charAt(i-1);
char p=pattern.charAt(j-1);
if(dp[i-1][j-1]&&(s==p||p=='?'||p=='*'))
dp[i][j]=true;
else{
if(dp[i-1][j]&&p=='*')
dp[i][j]=true;
}
}
}
/*for(int i=0;i<dp.length;i++){
for(int j=0;j<dp[0].length;j++){
System.out.print(dp[i][j]+" ");
}
System.out.println();
}*/
return dp[str.length()][pattern.length()]?1:0;
}
/**
* 检验不含*的pattern
* @param str
* @param patter
* @return
*/
public static int match(String str,String pattern){
if(str.length()!=pattern.length())
return 0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)!=pattern.charAt(i)&&pattern.charAt(i)!='?')
return 0;
}
return 1;
}
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
2025-12-20 01:04
中山大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
7386次浏览 105人参与
# 机械人避雷的岗位/公司 #
42185次浏览 280人参与
# 程序员找工作至少要刷多少题? #
13483次浏览 203人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1343次浏览 39人参与
# 我现在比当时_,你想录用我吗 #
6161次浏览 89人参与
# 过年最难忘的一件事 #
23100次浏览 174人参与
# 你最满意的offer薪资是哪家公司? #
69558次浏览 349人参与
# 为了减少AI幻觉,你注入过哪些设定? #
2865次浏览 97人参与
# 牛客AI体验站 #
5053次浏览 153人参与
# AI Coding的使用心得 #
3673次浏览 91人参与
# 找工作的破防时刻 #
253280次浏览 1962人参与
# 刚入职的你踩过哪些坑 #
5566次浏览 113人参与
# 论秋招对个人心气的改变 #
7586次浏览 132人参与
# 一张图晒一下你的AI员工 #
3787次浏览 82人参与
# 关于春招/暑期实习,你想知道哪些信息? #
5623次浏览 98人参与
# 黄金这个事上,你学到了什么 #
1388次浏览 41人参与
# 机械人你知道哪些单休企业 #
85568次浏览 428人参与
# 程序员能干到多少岁? #
7044次浏览 104人参与
# 晒晒你司的新年福利 #
5749次浏览 89人参与
# 关于提前批我想问 #
267666次浏览 2307人参与
查看12道真题和解析