Advertisement
knyazer

Untitled

Apr 29th, 2020
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     static boolean algo(String str, String pattern, int strI, int patternI) {
  8.         do {
  9.             if (strI == str.length()) {
  10.                 return true;
  11.             }
  12.             if (str.charAt(strI) == pattern.charAt(patternI)) {
  13.                 strI += 1;
  14.                 patternI += 1;
  15.             }
  16.             else if (pattern.charAt(patternI) == '?') {
  17.                 patternI += 1;
  18.                 strI += 1;
  19.             }
  20.             else if (pattern.charAt(patternI) == '*') {
  21.                 char symbol = '*';
  22.                 int i = patternI, patternCurI = 0;
  23.                 while (symbol == '*' || symbol == '?') {
  24.                     if (i >= pattern.length()) return false;
  25.                     symbol = pattern.charAt(i);
  26.                     patternCurI = i;
  27.                     i ++;
  28.                 }
  29.                 boolean ans = false;
  30.                 for (i = strI; i < str.length(); i++) {
  31.                     if (str.charAt(i) == symbol) {
  32.                         ans |= algo(str, pattern, i, patternCurI);
  33.                     }
  34.                 }
  35.                 return ans;
  36.             }
  37.             else return false;
  38.         } while(true);
  39.     }
  40.  
  41.     public static void main(String[] args) {
  42.         Scanner in = new Scanner(System.in);
  43.  
  44.         String str = in.next();
  45.         String pattern = in.next();
  46.  
  47.         System.out.println(algo(str, pattern, 0, 0) ? "YES" : "NO");
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement