Xét một bộ quét từ vựng (lexer) tối giản cho định danh (identifier). Luật xác định token như sau, áp dụng theo nguyên tắc vét cạn tối đa (maximal munch): tại mỗi vị trí, lấy dãy liên tiếp dài nhất gồm các ký tự thuộc {chữ cái, chữ số, _} làm một "cụm".
_: đó là 1 token định danh hợp lệ._/khoảng trắng) là 1 lỗi từ vựng riêng lẻ (1 ký tự = 1 lỗi).Cho văn bản đầu vào (có thể gồm nhiều dòng), hãy đếm: số token định danh hợp lệ, và tổng số lỗi từ vựng.
Ví dụ: với đầu vào abc123 _foo 9bad @ hello_world:
abc123 bắt đầu bằng chữ cái ⇒ 1 token hợp lệ._foo bắt đầu bằng _ ⇒ 1 token hợp lệ.9bad bắt đầu bằng chữ số, độ dài 4 ⇒ 4 lỗi.@ ⇒ 1 lỗi.hello_world ⇒ 1 token hợp lệ.Kết quả: 3 token hợp lệ, 5 lỗi.
Toàn bộ nội dung nhập vào (có thể nhiều dòng, tổng tối đa 105 ký tự), đọc đến hết input (EOF).
Một dòng gồm 2 số nguyên cách nhau bởi 1 dấu cách: số token định danh hợp lệ, và tổng số lỗi từ vựng.
Ví dụ:
Đầu vào:
abc123 _foo 9bad @ hello_world
Đầu ra:
3 5
Đầu vào:
Đầu ra:
0 0
Đang tải editor...