#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[]) {
int i;
for(i = 0; s[i]!= '\0'; i++);
return i;
}
char *setPalindrome(char s[]) {
int n = myStrlen(s);
int size = 2 * n;
char *tmp
= (char *)malloc(sizeof(char) * (size
+1)); if(tmp == NULL) {
return 0;
}
int i;
for(i = 0; i < n; i++) {
tmp[i] = s[i];
}
for(i = 0; i < n; i++) {
tmp[n + i] = s[n - 1 - i];
}
tmp[size] = '\0';
return tmp;
}
int main() {
int i;
char nyuryoku[1024];
char *kaibun;
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CgppbnQgbXlTdHJsZW4oY2hhciBzW10pIHsKICAgIGludCBpOwogICAgZm9yKGkgPSAwOyBzW2ldIT0gJ1wwJzsgaSsrKTsKICAgIHJldHVybiBpOwp9CgpjaGFyICpzZXRQYWxpbmRyb21lKGNoYXIgc1tdKSB7CiAgICBpbnQgbiA9IG15U3RybGVuKHMpOyAgICAgICAgICAgICAgICAgIAogICAgaW50IHNpemUgPSAyICogbjsgICAgICAgICAgICAgICAgCiAgICBjaGFyICp0bXAgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAoc2l6ZSsxKSk7CiAgICBpZih0bXAgPT0gTlVMTCkgewogICAgICAgIHByaW50ZigiRVJST1JcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgICAgIGludCBpOwogICAgZm9yKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgdG1wW2ldID0gc1tpXTsKICAgIH0KICAgICAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB0bXBbbiArIGldID0gc1tuIC0gMSAtIGldOwogICAgfQogICAgICAgIHRtcFtzaXplXSA9ICdcMCc7CgogICAgICAgICByZXR1cm4gdG1wOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBpOwogICAgY2hhciBueXVyeW9rdVsxMDI0XTsgIAogICAgY2hhciAqa2FpYnVuOyAgICAgICAgIAogICAgc2NhbmYoIiVzIixueXVyeW9rdSk7ICAgICAgICAgICAgICAgCiAgICBrYWlidW4gPSBzZXRQYWxpbmRyb21lKG55dXJ5b2t1KTsgICAgCiAgICBwcmludGYoIiVzXG4gIC0+ICVzXG4iLG55dXJ5b2t1LGthaWJ1bik7IAogICAgZnJlZShrYWlidW4pOyAgCiAgICByZXR1cm4gMDsKfQoK