先讲一下自己的思想:
1. 设置三个指针ppre,pre,post,依次指向字符串第一个,第二个,第三个。判断第一个和第二个(回文子串长度为偶数时);判断第一个和第三个(回文子串长度为奇数时)。设置一个num[SIZE]数组记录回文子串的长度,一个ptr[SIZE]指针数组记录回文子串的第一个子串。
2. 首先将字符串小于3的情况进行处理,然后大于等于3时,将ppre,pre,post依次赋值。
3. 设置循环,先判断ppre和post是否相等。若相等,就将ppre--和post++继续进行比较;不相等时,跳出,并将post值复原。再判断pre和post的值是否相等,若相等,就将pre--和post++继续进行比较;不相等时,跳出,并将post值复原。以上两个跳出后,注意记录回文子串的长度和首地址到num[SIZE]和ptr[SIZE]中。完成后,将ppre,pre和post依次向前走一步,继续。
4. 最后将记录的值赋值到str中。
程序中的一个bug时,当遇到相同长度的回文字串时,输出第一个回文子串。