您的位置:首页 > 其它

求组合排列和字符串偏移

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: