(回文)回文是前后两个方向拼写完全相同的字符串。编写一个递归函数isPalindrome来判断回文,如果存储在数组中的字符串是一个回文,则返回1,否则返回0.函数应该忽略字符串中的空格和逗号。
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
1
int
isPalindrome(
char
array[],
int
size )
2 {
3 if ( size <= 1 )
4 return 1 ;
5 if ( array[ 0 ] == array[ size - 1 ] )
6 {
7 return isPalindrome( array + 1 , size - 2 );
8 }
9 /**/ /*
10 忽略数组中的空格和逗号
11 */
12 else
13 {
14 if ( ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
15 ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
16 {
17 return isPalindrome( array + 2 , size - 2 );
18 }
19 else if ( ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
20 ! ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
21 {
22 return isPalindrome( array + 2 , size - 1 );
23 }
24 else if ( ! ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
25 ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
26 {
27 return isPalindrome( array + 1 , size - 2 );
28 }
29 }
30
31 return 0 ;
32 }
2 {
3 if ( size <= 1 )
4 return 1 ;
5 if ( array[ 0 ] == array[ size - 1 ] )
6 {
7 return isPalindrome( array + 1 , size - 2 );
8 }
9 /**/ /*
10 忽略数组中的空格和逗号
11 */
12 else
13 {
14 if ( ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
15 ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
16 {
17 return isPalindrome( array + 2 , size - 2 );
18 }
19 else if ( ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
20 ! ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
21 {
22 return isPalindrome( array + 2 , size - 1 );
23 }
24 else if ( ! ( array[ 0 ] == ' ' || array[ 0 ] == ' , ' ) &&
25 ( array[ size - 1 ] == ' ' || array[ size - 1 ] == ' , ' ) )
26 {
27 return isPalindrome( array + 1 , size - 2 );
28 }
29 }
30
31 return 0 ;
32 }