#include <stdio.h>
#include <stdlib.h>
int isPalindrome(char s[]){
int i,j;
for(i=0;s[i]!='\0';i++);
for(j=0;j<i;j++){
i--;
if(s[i]!=s[j]) return 0;
}
return 1;
}
char *setPalindrome(char s[]){
char *tmp;
int i;
for(i=0;s[i]!='\0';i++);
int j,k;
tmp
= (char*)malloc(sizeof(char)*i
*2); if(tmp==NULL){
return 0;
}
for(j=0;j<i;j++){
tmp[j] = s[j];
}
for(j=i;isPalindrome(tmp)==0;j++){
//printf("j=%d\n",j);
for(k=0;k<j-i;k++){
tmp[j-k-1]=tmp[k];
}
tmp[j]='\0';
//printf("%s\n",tmp);
}
return tmp;
}
int main(){
int i;
char nyuryoku[1024];
char *kaibun;
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBpc1BhbGluZHJvbWUoY2hhciBzW10pewoJaW50IGksajsKCWZvcihpPTA7c1tpXSE9J1wwJztpKyspOwoJZm9yKGo9MDtqPGk7aisrKXsKCQlpLS07CgkJaWYoc1tpXSE9c1tqXSkgcmV0dXJuIDA7Cgl9CglyZXR1cm4gMTsKfQoKY2hhciAqc2V0UGFsaW5kcm9tZShjaGFyIHNbXSl7CgljaGFyICp0bXA7CglpbnQgaTsKCWZvcihpPTA7c1tpXSE9J1wwJztpKyspOwoJaW50IGosazsKCXRtcCA9IChjaGFyKiltYWxsb2Moc2l6ZW9mKGNoYXIpKmkqMik7CglpZih0bXA9PU5VTEwpewoJCXByaW50ZigiRVJST1JcbiIpOwoJCXJldHVybiAwOwoJfQogICAgZm9yKGo9MDtqPGk7aisrKXsKICAgICAgICB0bXBbal0gPSBzW2pdOwogICAgfQoJZm9yKGo9aTtpc1BhbGluZHJvbWUodG1wKT09MDtqKyspewoJCS8vcHJpbnRmKCJqPSVkXG4iLGopOwoJCWZvcihrPTA7azxqLWk7aysrKXsKCQkJdG1wW2otay0xXT10bXBba107CgkJfQoJCXRtcFtqXT0nXDAnOwoJCS8vcHJpbnRmKCIlc1xuIix0bXApOwoJfQoJcmV0dXJuIHRtcDsKfQoKaW50IG1haW4oKXsKICAgIGludCBpOwogICAgY2hhciBueXVyeW9rdVsxMDI0XTsKICAgIGNoYXIgKmthaWJ1bjsKICAgIHNjYW5mKCIlcyIsbnl1cnlva3UpOwogICAga2FpYnVuID0gc2V0UGFsaW5kcm9tZShueXVyeW9rdSk7CiAgICBwcmludGYoIiVzXG4gIC0+ICVzXG4iLG55dXJ5b2t1LGthaWJ1bik7CiAgICBmcmVlKGthaWJ1bik7CiAgICByZXR1cm4gMDsKfQo=