Giả sử chúng ta sử dụng các quy tắc sau để kéo một chuỗi từ một chuỗi khác, một chuỗi chỉ chứa các ký tự có thể in ASCII và được gọi là một *
chuỗi. Nếu chuỗi hết trước khi quá trình tạm dừng, đó là một lỗi và kết quả của quá trình không được xác định trong trường hợp đó:
- Bắt đầu với
d=1, s=""
- Bất cứ khi nào bạn gặp a
*
, nhând
với 2. Bất cứ khi nào bạn gặp một nhân vật khác, hãy ghép nó vào cuốis
và trừ 1 từd
. Nếu bây giờd=0
, dừng lại và trở lạis
Ví dụ được xác định :
d->d
769->7
abcd56->a
*abcd56->ab
**abcd56->abcd
*7*690->769
***abcdefghij->abcdefgh
Ví dụ không xác định : (lưu ý rằng chuỗi trống cũng sẽ là một trong số này)
*7
**769
*7*
*a*b
*
Công việc của bạn là lấy một chuỗi và trả về chuỗi ngắn nhất *
tạo ra chuỗi đó.
Ví dụ chương trình :
7->7
a->a
ab->*ab
abcd->**abcd
769->*7*69
Chương trình của bạn sẽ xử lý bất kỳ chuỗi nào chứa ít nhất một ký tự và chỉ các *
ký tự không thể in ASCII. Bạn không bao giờ có thể trả về các chuỗi mà quá trình không được xác định, vì theo định nghĩa, chúng không thể tạo ra bất kỳ chuỗi nào.
Lỗ hổng tiêu chuẩn và quy tắc I / O được áp dụng.
*
?