Giới thiệu
Đối với những người không biết, một palindrom là khi một chuỗi bằng với chuỗi ngược (ngoại trừ giao thoa, khoảng trắng, v.v.). Một ví dụ về palindrom là:
abcdcba
Nếu bạn đảo ngược điều này, bạn sẽ kết thúc với:
abcdcba
Cái nào cũng vậy. Do đó, chúng tôi gọi đây là một palindrom. Để giảm nhẹ mọi thứ, chúng ta hãy xem một ví dụ về chuỗi:
adbcb
Đây không phải là một palindrom. Để giảm bớt điều này, chúng ta cần hợp nhất chuỗi đảo ngược vào chuỗi ban đầu ở bên phải chuỗi ban đầu , giữ nguyên cả hai phiên bản. Càng ngắn, càng tốt.
Điều đầu tiên chúng ta có thể thử là như sau:
adbcb
bcbda
^^ ^^
Không phải tất cả các ký tự khớp, vì vậy đây không phải là vị trí phù hợp cho chuỗi đảo ngược. Chúng tôi đi một bước về bên phải:
adbcb
bcbda
^^^^
Điều này cũng không phù hợp với tất cả các nhân vật. Chúng tôi đi một bước nữa bên phải:
adbcb
bcbda
Lần này, tất cả các nhân vật phù hợp . Chúng ta có thể hợp nhất cả hai chuỗi còn nguyên . Kết quả cuối cùng là:
adbcbda
Đây là chuỗi palindromized .
Nhiệm vụ
Cho một chuỗi (có ít nhất một ký tự) chỉ chứa các chữ cái viết thường (hoặc chữ hoa, nếu phù hợp hơn), hãy xuất chuỗi ký tự palindromized .
Các trường hợp thử nghiệm
Input Output
abcb abcba
hello hellolleh
bonobo bonobonob
radar radar
hex hexeh
Đây là môn đánh gôn , vì vậy bài nộp có số byte ít nhất sẽ thắng!
obonobo
sẽ là một giải pháp tốt hơn cho trường hợp thử nghiệm.
bono b o nob
là cả một câu. Sự khác biệt giữa Chúa và Bono là gì? Chúa không đi lang thang quanh Dublin giả vờ là Bono ;-)