字符串的无重复全排列

原创 2015年07月09日 16:58:49

using namespace std;

void function(char* pStr, char* pBegin);
bool IsSwap(char* pBegin, char* pEnd);

int main(void)
{

char str[] = "aabc";

function(str,str);

return 0;

}

//在[pBegin,pEnd]区间中是否有字符与下标为pEnd的字符相等
bool IsSwap(char* pBegin, char* pEnd)
{

char *p;
for (p = pBegin; p < pEnd; p++)
{
    if (*p == *pEnd)
        return false;
}
return true;

}

void function(char* pStr, char* pBegin)
{

if (*pBegin == '\0')
{
    printf("%s\n",pStr);
}
else
{
    for (char* pCh1 = pBegin; *pCh1 != '\0'; pCh1++)
    {
        if (IsSwap(pBegin, pCh1))
        {
            swap(*pBegin, *pCh1);
            function(pStr, pBegin+1);
            swap(*pBegin, *pCh1);
        }
    }
}

}

含重复字符的字符串的全排列问题(Java)

本代码既可以输出重复和不重复字符串的全排列/** * 含重复字符的字符串的全排列问题 * @author ShaoGaoyuan * */ public class S_28 { pu...

带油重复字符串全排列递归解法

  • 2016年08月24日 18:28
  • 731B
  • 下载

含重复字符的字符串全排列算法(思路+分析)

从昨天到现在一直在回顾字符串的全排列算法,之前简单地复习了不含重复字符的字符串全排列,所以这次想彻底解决该算法。关于不含重复字符的字符串全排列比较简单,直接用递归思路解决即可,简单代码如下: tem...

《编程之法》1.3字符串的全排列,组合,重复排列,八皇后问题

题目描述:输入一个字符串,打印出该字符串中字符的所有排列,例如输入"abc",输出"abc","acb","bac","bca","cab","cba" 解法一:递归实现 类似于图的深度遍历搜索求...

字符串的全排列问题(一)——无重复出现字符的排列

有一个很常见的问题:给定一个字符串:ABCDEFG, 那么这个字符串有多少种排列方式,编程求出其所有排列方式。 通常对于这种问题会想到递归的方法实现。对于一个没有重复字符出现的字符串,求该字符串的全...

递归解决输出一个字符串的全排列问题(缺陷:没有考虑字符串中字符重复的问题)

这个问题,或许对于别人来说很简单,但对于我来说还是挺难的,花了我两天时间,虽然我不是一直在做这个问题。废话不说,上代码,自己基本功还有待加强啊。#include "stdafx.h"#include ...
  • zc186v
  • zc186v
  • 2013年09月28日 22:13
  • 428

字符串全排列——重复和非重复

字符串全排列 1. 题目     输入一个字符串,打印出该字符串中字符的所有排列。例如:输入abc, 我们就可以得到abc, acb, bac, bca, cab, cba。 这个题目主要有两种思路:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串的无重复全排列
举报原因:
原因补充:

(最多只允许输入30个字)