字符串全排列代码

来源:互联网 发布:python爬虫高级教程 编辑:程序博客网 时间:2024/06/10 04:38
Permutation(char a[], int start, int end)
{
int i;
char temp;
if(start == end)
{
for(i = 0; i <= end; i++)
printf(
" %c ",a[i]);
printf(
"/n");
}
else
{
for(i = start; i <= end; i++)
{
temp
=a[start]; a[start]=a[i]; a[i]=temp;
Permutation(a, start
+1, end);
temp
=a[start]; a[start]=a[i]; a[i]=temp;
}
}
}

第二种:
void Permutation(char* pStr, char* pBegin)
{
      if(!pStr || !pBegin)
            return;

      // if pBegin points to the end of string,
      // this round of permutation is finished,
      // print the permuted string
      if(*pBegin == '/0')
      {
            printf("%s/n", pStr);
      }
      // otherwise, permute string
      else
      {
            for(char* pCh = pBegin; *pCh != '/0'; ++ pCh)
            {
                  // swap pCh and pBegin
                  char temp = *pCh;
                  *pCh = *pBegin;
                  *pBegin = temp;

                  Permutation(pStr, pBegin + 1);

                  // restore pCh and pBegin

                  PS:改变字符串顺序后必须还原回来!

                  temp = *pCh;
                  *pCh = *pBegin;
                  *pBegin = temp;
            }
      }
}



原创粉丝点击