递归反转一个字符串
2010-05-19 01:11
211 查看
给定一个字符串“ABCDEFGHI”,用递归的方式将其反转。
思路:每次进行首尾字符交换,
第一次,将A和I交换,此时变成 IBCDEFGHA,此时递归的字符串应该变成其子串“BCDEFGH”
第二次,将B和H交换,此时变成 IHCDEFGBA,此时递归的字符串应该变成其子串“CDEFG”
依次递归下去,直到只剩一个字符,无法进行其它交换为止。
思路:每次进行首尾字符交换,
第一次,将A和I交换,此时变成 IBCDEFGHA,此时递归的字符串应该变成其子串“BCDEFGH”
第二次,将B和H交换,此时变成 IHCDEFGBA,此时递归的字符串应该变成其子串“CDEFG”
依次递归下去,直到只剩一个字符,无法进行其它交换为止。
void Func(char* p, int N) { assert(p != NULL); if (N == 1) { return; } else { char ch = p[0]; p[0] = p[N-1]; p[N - 1] = ch; Func(p+1, N - 2); } } 测试代码: char p[] = "ABCDEFGHI"; Func(p, 9);
相关文章推荐
- 一个JavaScript递归实现反转数组字符串的实例
- 每天一个JavaScript实例-递归实现反转数组字符串
- 每天一个JavaScript实例-递归实现反转数组字符串
- 一个JavaScript递归实现反转数组字符串的实例
- 判断一个字符串是否为回文(递归)
- 用递归实现判断一个字符串是否是回文的方法
- 递归实现字符串字符反转
- rever_string()函数(递归实现)即递归实现字符串反转
- 用递归的思想写编写一个函数reverse_string(char * string)实现字符串反向输出和反向排列
- 反转一个字符串
- 将一个字符串逆序,不要使用反转函数(面试题)
- 运用递归调用方法来反转字符串
- 反转一个字符串和删除N层级目录的所有文件或者删除数据库所有表保留数据库;清除数据库所有表的数据
- 用C++实现void reverse(char* str)函数,即反转一个null结尾的字符串.
- 《Java程序》使用递归调用的方法,写一个能够将字符串倒叙输出的函数
- 用递归的方法将一个整数n转化为字符串(不是调用函数,直接输出)
- 【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- java 如何实现一个字符串的反转
- 一个字符串反转函数可实现字符串倒序
- DIY一个字符串反转函数