Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.Scanner;
- public class Main {
- static boolean algo(String str, String pattern, int strI, int patternI) {
- do {
- if (strI == str.length()) {
- return true;
- }
- if (str.charAt(strI) == pattern.charAt(patternI)) {
- strI += 1;
- patternI += 1;
- }
- else if (pattern.charAt(patternI) == '?') {
- patternI += 1;
- strI += 1;
- }
- else if (pattern.charAt(patternI) == '*') {
- char symbol = '*';
- int i = patternI, patternCurI = 0;
- while (symbol == '*' || symbol == '?') {
- if (i >= pattern.length()) return false;
- symbol = pattern.charAt(i);
- patternCurI = i;
- i ++;
- }
- boolean ans = false;
- for (i = strI; i < str.length(); i++) {
- if (str.charAt(i) == symbol) {
- ans |= algo(str, pattern, i, patternCurI);
- }
- }
- return ans;
- }
- else return false;
- } while(true);
- }
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- String str = in.next();
- String pattern = in.next();
- System.out.println(algo(str, pattern, 0, 0) ? "YES" : "NO");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement