isPrefix
:: Eq a
=> [a
] -> [a
] -> BoolisPrefix [] _ = True
isPrefix _ [] = False
isPrefix (x:xs) (y:ys) = x == y && isPrefix xs ys
result xs ys zs
= isPrefix xs ys
&& isPrefix
(reverse xs
) (reverse zs
)
main = do
print $ result
[1,2] [1,2,3] [3,1,2] print $ result
[1,2] [1,2,3] [3,2,2] print $ result
[1,2] [1,3,3] [3,1,2] print $ result
[1,2] [1,2,3] [1]
aXNQcmVmaXggOjogRXEgYSA9PiBbYV0gLT4gW2FdIC0+IEJvb2wKaXNQcmVmaXggICBbXSAgICAgXyAgICAgPSAgVHJ1ZQppc1ByZWZpeCAgIF8gICAgICBbXSAgICA9ICBGYWxzZQppc1ByZWZpeCAoeDp4cykgKHk6eXMpICA9ICB4ID09IHkgJiYgaXNQcmVmaXggeHMgeXMKCnJlc3VsdCB4cyB5cyB6cyA9IGlzUHJlZml4IHhzIHlzICYmIGlzUHJlZml4IChyZXZlcnNlIHhzKSAocmV2ZXJzZSB6cykKCm1haW4gPSBkbwoJcHJpbnQgJCByZXN1bHQgWzEsMl0gWzEsMiwzXSBbMywxLDJdCglwcmludCAkIHJlc3VsdCBbMSwyXSBbMSwyLDNdIFszLDIsMl0KCXByaW50ICQgcmVzdWx0IFsxLDJdIFsxLDMsM10gWzMsMSwyXQoJcHJpbnQgJCByZXN1bHQgWzEsMl0gWzEsMiwzXSBbMV0K