Bộ dựng Thompson (Thompson construction) biến một biểu thức chính quy thành một NFA có ε-dịch chuyển. Trong bài này, quy tắc dựng được cố định như sau (số trạng thái và số dịch chuyển của mỗi mảnh NFA con):
.): gộp trạng thái kết thúc của e1 với trạng thái bắt đầu của e2 thành một. Số trạng thái =s1+s2−1; số dịch chuyển =t1+t2.|): thêm 1 trạng thái bắt đầu mới, 1 trạng thái kết thúc mới, và 4 dịch chuyển ε nối chúng với e1,e2. Số trạng thái =s1+s2+2; số dịch chuyển =t1+t2+4.*): thêm 1 trạng thái bắt đầu mới, 1 trạng thái kết thúc mới, và 4 dịch chuyển ε. Số trạng thái =s+2; số dịch chuyển =t+4.Cho biểu thức chính quy viết dưới dạng hậu tố (postfix, không dấu ngoặc) chỉ gồm chữ cái thường a-z (toán hạng) và ba toán tử ., |, *, hãy tính tổng số trạng thái và tổng số dịch chuyển (kể cả ε) của NFA thu được khi dựng theo Thompson với quy tắc trên.
Một dòng duy nhất chứa biểu thức hậu tố (chỉ gồm a-z, ., |, *, không khoảng trắng, độ dài ≤200). Biểu thức luôn hợp lệ (đủ số toán hạng cho mỗi toán tử).
Một dòng gồm hai số nguyên cách nhau một khoảng trắng: số trạng thái và số dịch chuyển của NFA.
Ví dụ: với đầu vào ab. (biểu diễn a⋅b), kết quả là 3 2.
Ví dụ:
Đầu vào:
a
Đầu ra:
2 1
Đầu vào:
ab.
Đầu ra:
3 2
Đang tải editor...