Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Khớp mẫu ký tự đại diện

    Trong một bộ phân tích từ vựng (lexer) đơn giản, trước khi xây dựng một động cơ regex đầy đủ, ta thường cần một bước kiểm tra sơ bộ xem một xâu có khớp với một mẫu (pattern) chứa ký tự đại diện hay không.

    Cho một xâu sss chỉ gồm các chữ cái tiếng Anh viết thường, và một mẫu ppp gồm chữ cái thường cùng hai ký tự đặc biệt:

    • ? khớp với đúng một ký tự bất kỳ,
    • * khớp với một dãy con bất kỳ (kể cả dãy rỗng) gồm các ký tự bất kỳ.

    Hãy xác định mẫu ppp có khớp toàn bộ (từ ký tự đầu tới ký tự cuối) xâu sss hay không.

    Ví dụ 1: s=s = s= abc, p=p = p= a?c → khớp (? khớp với b).

    Ví dụ 2: s=s = s= abc, p=p = p= a*d → không khớp (không có d ở cuối s).

    • Định dạng đầu vào:

      Dòng 1 chứa xâu sss (0≤∣s∣≤10000 \le |s| \le 10000≤∣s∣≤1000, chỉ gồm chữ cái thường; là dòng rỗng nếu sss rỗng). Dòng 2 chứa mẫu ppp (0≤∣p∣≤10000 \le |p| \le 10000≤∣p∣≤1000, chỉ gồm chữ cái thường, ?, *; là dòng rỗng nếu ppp rỗng).

    • Định dạng đầu ra:

      In ra YES nếu ppp khớp toàn bộ sss, ngược lại in NO.

    Ví dụ:

    Đầu vào:

    
    
    

    Đầu ra:

    YES
    

    Đầu vào:

    abc
    a?c
    

    Đầu ra:

    YES
    

    Đang tải editor...