// 对字符串s在区间left和right之间进行逆序,递归法
void Reverse( char* s, int left, int right )
{
if(left >= right)
return s ;
char t = s[left] ;
s[left] = s[right] ;
s[right] = t ;
Reverse(s, left + 1, right - 1) ;
}
三 非递归法,同样指定逆序区间,和方法一没有本质区别,一个使用指针,一个使用下标。
// 对字符串str在区间left和right之间进行逆序char* Reverse( char* s, int left, int right )
{
while( left < right )
{
char t = s[left] ;
s[left++] = s[right] ;
s[right--] = t ;
}
return s ;
}
按单词逆序
给定一个字符串,按单词将该字符串逆序,比如给定"This is a sentence",则输出是"sentence a is This",为了简化问题,字符串中不包含标点符号。
二 用递归的方式,需要给定逆序的区间,调用方法:Reverse(s, 0, strlen(s)) ;// 对字符串s在区间left和right之间进行逆序,递归法void Reverse( char* s, int left, int right ){ if(left >= right) return s ; char t = s[left]