数据结构(C语言版)中关于“回文”的算法程序

来源:百度知道 编辑:UC知道 时间:2024/09/24 21:20:48
假设称正读和反读都相同的字符序列为“回文”,例如,'abba'和'avcba'是回文,'abcde'和'ababab'则不是回文。试写一个算法判别读入的一个以'@'为结束符的字符序列是否是'回文'。

请问这个算法具体应该怎么写?

依次比较第n个元素和倒数第n个元素,第n个元素的下标是n-1,倒数第n个元素的下标是m-n-1,m是元素总个数
n从0开始到m/2
如果m是奇数,那么m/2是中间那个元素左边那个,最中间那个元素不用和本身比较了
如果m是偶数,那么m/2和m/2+1是最中间那2个元素

代码就是vbtraz写的那样

假设字符串长度是 len
int i;
for ( i=0; i<=len/2; ++i) {
if ( str[i] != str[len-i-1]) return false;
}
return true;