Chuỗi với bối cảnh
Đối với mục đích của thử thách này, một chuỗi có ngữ cảnh là một chuỗi ba chuỗi, được gọi là bối cảnh bên trái , phần dữ liệu và bối cảnh bên phải . Nó đại diện cho một chuỗi con của một chuỗi dài hơn. Chúng tôi sử dụng ống đứng |
làm dấu phân cách, vì vậy một ví dụ về chuỗi có ngữ cảnh là cod|e-go|lf
, trong đó bối cảnh bên trái là cod
dữ liệu e-go
và bối cảnh bên phải là lf
. Ví dụ này đại diện cho chuỗi con e-go
của code-golf
.
Bây giờ, để nối hai chuỗi với ngữ cảnh, chúng tôi tiến hành như sau, sử dụng aa|bcc|dee
và cc|de|eee
làm ví dụ. Chúng tôi sắp xếp các chuỗi như trong sơ đồ
a a|b c c|d e e
c c|d e|e e e
để các phần dữ liệu của họ liền kề nhau. Phần dữ liệu của phần ghép là phần nối của phần dữ liệu, trong trường hợp này bccde
. Bối cảnh bên trái là phần kéo dài phần bên trái của phần dữ liệu đầu tiên, trong trường hợp này aa
. Tương tự, bối cảnh phù hợp là eee
, do đó, nối là chuỗi với bối cảnh aa|bccde|eee
. Đối với một ví dụ thứ hai, hãy xem xét a|bb|cd
và aabb|cd|
, trong đó từ thứ hai có ngữ cảnh bên phải trống. Sơ đồ căn chỉnh là
a|b b|c d
a a b b|c d|
trong đó ngữ cảnh bên trái của từ thứ hai mở rộng hơn so với từ thứ nhất. Sự kết hợp là aa|bbcd|
.
Nhưng chờ đã, có một vấn đề: nếu các chữ cái của sơ đồ căn chỉnh không khớp, thì phép nối không tồn tại! Ví dụ, sơ đồ của aa|bb|cc
và c|c|c
là
a a|b b|c c
c|c|c
trong đó b
và c
trên cột thứ tư không đồng ý, vì vậy chúng không thể được nối với nhau.
Nhiệm vụ
Công việc của bạn là viết một chương trình gồm hai chuỗi với bối cảnh có các phần được phân tách |
như trên và đưa ra kết nối của chúng nếu nó tồn tại và một cái gì đó khác nếu không. "Cái gì khác" có thể là bất kỳ giá trị nào, kể cả không có đầu ra, miễn là nó không phải là một chuỗi hợp lệ với ngữ cảnh và nó cũng giống nhau trong mọi trường hợp. Tuy nhiên, ném một lỗi là không thể chấp nhận được. Bạn có thể cung cấp chương trình STDIN-to-STDOUT hoặc một chức năng và các chức năng ẩn danh cũng được chấp nhận. Số byte nhỏ nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
aa|bcc|dee cc|de|eee -> aa|bccde|eee
a|bb|cd aabb|cd| -> aa|bbcd|
a|b|cccd aab|cc|c -> aa|bcc|cd
a|b|c b||cd -> a|b|cd
aa|bb|cc c|c|c -> None
aaa|b|c abb|cd|d -> None
|bb|cd abb|c|ed -> None
a|b|c a||cd -> None
|1<2=""
vào định nghĩa&
nên giải quyết điều đó. Tôi xin lỗi tôi đã không chỉ định điều này rõ ràng hơn trong thông số kỹ thuật, tôi sẽ chỉnh sửa nó.