回文判断(递归)
(回文)回文是前后两个方向拼写完全相同的字符串。编写一个递归函数isPalindrome来判断回文,如果存储在数组中的字符串是一个回文,则返回1,否则返回0.函数应该忽略字符串中的空格和逗号。
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
}
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
else13
{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
}


浙公网安备 33010602011771号