#ifndef PALINDROME_H_#define PALINDROME_H_#include<iostream>#include<string>int palindrome_longest(char *str,int front,int back);#endif
#include"Palindrome.h"#define Max(a,b) a>b? a:bint palindrome_longest(char *str,int front,int back){int pali_count=0;if(front==back)return pali_count+1;if(str[front]==str[back]){pali_count=palindrome_longest(str,front+1,back-1)+1;}else{pali_count=Max(palindrome_longest(str,front+1,back),palindrome_longest(str,front,back-1));}return pali_count;}
#include "LongPath.h"#include "Palindrome.h"int main(){char *str="civic";char *str0="racecar";char *str1="character";std::cout<<palindrome_longest(str,0,4)<<std::endl;std::cout<<palindrome_longest(str0,0,6)<<std::endl;std::cout<<palindrome_longest(str1,0,8)<<std::endl



if(str[front]==str[back]){pali_count=palindrome_longest(str,front+1,back-1)+1;}else{pali_count=Max(palindrome_longest(str,front+1,back),palindrome_longest(str,front,back-1));}
原文:http://www.cnblogs.com/yml435/p/4655525.html