求组合排列和字符串偏移
2008-12-16 09:27
459 查看
前段时间加班,让我好久没有看书了,周日又开始看programming pearls了,分享下我的代码。livewrier对代码排版的支持实在不好,大家凑合着看吧。
2.3节对字符串偏移的计算算法实在高明,真不知道作者是怎么想出来的,不过它的方法是可以用数学归纳法证明正确的,下面是我的实现代码:
#include
#include
void reverse(char *str, int startPos, int endPos)
{
char temp;
int i, j;
for (i=startPos, j=endPos; i
#include
void swap(char *str, int from, int to)
{
char temp;
temp = str[from];
str[from] = str[to];
str[to] = temp;
}
//permuations: 找出字符串的所有组合排列但不重复
//startPos: 前startPos个字符串都已经固定了
void permutations(char *str, int startPos, const int iLen)
{
int i;
//如果固定长度等于字符串长度则打印字符串
if(iLen == startPos){
printf("%s/n", str);
}
//否则继续固定一个字符串
else{
for (i=startPos; i
2.3节对字符串偏移的计算算法实在高明,真不知道作者是怎么想出来的,不过它的方法是可以用数学归纳法证明正确的,下面是我的实现代码:
#include
#include
void reverse(char *str, int startPos, int endPos)
{
char temp;
int i, j;
for (i=startPos, j=endPos; i
#include
void swap(char *str, int from, int to)
{
char temp;
temp = str[from];
str[from] = str[to];
str[to] = temp;
}
//permuations: 找出字符串的所有组合排列但不重复
//startPos: 前startPos个字符串都已经固定了
void permutations(char *str, int startPos, const int iLen)
{
int i;
//如果固定长度等于字符串长度则打印字符串
if(iLen == startPos){
printf("%s/n", str);
}
//否则继续固定一个字符串
else{
for (i=startPos; i
相关文章推荐
- 字符串的排列组合
- 解题笔记(21)——字符串的排列组合问题
- 字符串的排列、组合
- 黑马程序员技术博客之字符串的组合与排列
- 字符串的全排列和组合算法
- 字符串的全排列和组合算法(转)
- 字符串的全排列和组合算法
- 字符串的全排列和组合算法
- 黑马程序员-.NET-C#查找字符串的所有排列组合
- [收集]字符串的全排列和组合
- 字符串的全排列和组合算法(转)
- 字符串的全排列和组合算法
- 字符串的全排列和组合算法
- (1)字符串全排列 / 组合
- 字符串的排列组合问题
- 9.9递归和动态规划(五)——确定某字符串的所有排列组合
- 我理解的剑指offer----字符串的全排列和组合算法
- java字符串的排列组合
- 输出字符串的所有排列组合
- 字符串数组元素排列与组合的Java递归实现