字符串全排列
来源:互联网 发布:天刀太白捏脸数据下载 编辑:程序博客网 时间:2024/05/20 20:04
全排列C++代码
// 求一个字符串的全排列.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;typedef struct Node{char *str;struct Node *Next;}Node,*NodeList;void Exchange(char &a,char &b){char c=a;a=b;b=c;}int IsInclude(char *str,char c){for(int i=0;i<strlen(str);i++)if(str[i]==c)return true;return false;}int GetNext(char *str,char *chars){for(int i=0;i<strlen(str);i++){if(!IsInclude(chars,str[i]))return i;}return 0;}int Find(char *str,char c){for(int i=0;i<strlen(str);i++)if(str[i]==c)return i;return -1;}void GetOut(char *str){int len=strlen(str);NodeList gg=new Node();gg->str=new char[len];strcpy(gg->str,str);gg->Next=NULL;int strct=1;char *chars=new char[len];int chct=0;Node *end=gg;for(int i=0;i<len;i++){if(!IsInclude(chars,str[i])){chars[chct++]=str[i];int ct=strct;Node *p=gg;while(ct){for(int j=0;j<len;j++){int pos=Find(p->str,str[i]);if(p->str[j]!=p->str[pos]&&!IsInclude(chars,p->str[j])){Node *add=new Node();add->str=new char[len];strcpy(add->str,str);Exchange(add->str[j],add->str[pos]);end->Next=add;end->Next->Next=NULL;end=end->Next;strct++;}}p=p->Next;ct--;}}}while(gg){cout<<gg->str<<endl;gg=gg->Next;}}int _tmain(int argc, _TCHAR* argv[]){GetOut("abcc");return 0;}
- 字符串的全排列
- 字符串的全排列
- 字符串全排列问题
- 字符串全排列
- 字符串全排列问题
- 字符串全排列
- 求字符串全排列
- 求字符串全排列
- 字符串的全排列
- 字符串全排列代码
- 字符串全排列
- 字符串全排列
- 字符串全排列
- 字符串的全排列
- 字符串全排列
- 求字符串全排列
- 字符串全排列
- 字符串的全排列
- #define、const和enum
- JQuery js / Fullscreen.js
- linux的物理内存与线性地址空间布局--1
- Android API学习 SoundPool 和 MediaPlayer
- Exploring TCP state machine by graphs
- 字符串全排列
- 张西雨 你妹的——社会化工具下的个人安全问题
- java web 实现上传下载
- linux的物理内存与线性地址空间布局--2
- 迈出从3K到1W的重要一步——掌握设计模式
- Solr3.6.1 在tomcat6下的环境搭建
- QT安装不使用dll的全局钩子
- c#两种方式 dataset 与byte[] 字节的转换
- php @错误抑制符