[編程題]字符串模式匹配


鏈接:https://www.nowcoder.com/questionTerminal/2e2510b2e41e4d3b922416e51afc077b
來源:牛客網

給出兩個字符串,分別是模式串P和目標串T,判斷模式串和目標串是否匹配,匹配輸出 1,不匹配輸出 0。模式串中‘?’可以匹配目標串中的任何字符,模式串中的 ’*’可以匹配目標串中的任何長度的串,模式串的其它字符必須和目標串的字符匹配。例如P=a?b,T=acb,則P 和 T 匹配。

 

輸入描述:

輸入第一行包含一個字符串p, (1 ≤ |p| ≤ 20).

輸入第二行包含一個字符串t, (1 ≤ |t| ≤ 20).


輸出描述:

輸出僅包含0和1的整數,0表示p和t不匹配,1表示p和t匹配。

示例1

輸入

a?b
ab

輸出

0
示例2

輸入

a*b
ab

輸出

1
示例3

輸入

a*b
a(cb

輸出

1

 

備注:
保證T中不包含 ‘*’ 字符和 ‘?’ 字符

 

用C++搞了半天,結果發現用Java就需要幾行就可以搞定。只怪自己太菜了。

 

Code:[Java]

鏈接:https://www.nowcoder.com/questionTerminal/2e2510b2e41e4d3b922416e51afc077b
來源:牛客網

import java.util.regex.Pattern;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String p = scanner.nextLine();
        String t = scanner.nextLine();
         
        if (Pattern.matches(p.replace("*",".*").replace("?","."),t)){
            System.out.println(1);
        }else {
            System.out.println(0);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM