博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oral_quiz->#字符串的排列、组合#
阅读量:6814 次
发布时间:2019-06-26

本文共 1609 字,大约阅读时间需要 5 分钟。

hot3.png

///Permutation///#include 
#include
void Swap(char* p1, char* p2) { char temp = *p1; *p1 = *p2; *p2 = temp;}void Permutation_bad(char* pStr, char* pStart);void Permutation(char* pStr) { if(pStr == NULL) return; Permutation_bad(pStr, pStr);}void Permutation_bad(char* pStr, char* pStart) { if(*pStart == '\0') { printf("%s.\n", pStr); return; } char* pIndex = pStart; while(*pIndex != '\0') { Swap(pStart, pIndex); Permutation_bad(pStr, pStart+1); Swap(pStart, pIndex); ++pIndex; }}// ====================测试代码====================void Test(char* pStr){ if(pStr == NULL) printf("Test for NULL begins:\n"); else printf("Test for %s begins:\n", pStr); Permutation(pStr); printf("\n");}int main(int argc, char* argv[]){ Test(NULL); char string1[] = ""; Test(string1); char string2[] = "a"; Test(string2); char string3[] = "ab"; Test(string3); char string4[] = "abcd"; Test(string4); return 0;}

Combination///#include 
#include
#include
#include
void Combination_m(char* pStr, int m, std::vector
& result);void Combination(char* pStr) { if(pStr == NULL || pStr == '\0') return; int number = strlen(pStr); for(int i=1; i<=number; ++i) { std::vector
result; Combination_m(pStr, i, result); }}void Combination_m(char* pStr, int m, std::vector
& result) { if(pStr == NULL || (*pStr == '\0' && m != 0)) return; if(m == 0) { for(std::vector
::iterator iter = result.begin(); iter

转载于:https://my.oschina.net/ITHaozi/blog/280775

你可能感兴趣的文章
.NET英语单词 计算机英语 术语表1
查看>>
我的友情链接
查看>>
面试宝典系列-Hash碰撞是什么?
查看>>
我的友情链接
查看>>
产品管理的八大库
查看>>
可能存在安全威胁的端口及操作建议
查看>>
配置管理小报100323: 使用CVS中的常见故障
查看>>
Web 实时推送技术的总结
查看>>
OPENCV 使用系列 JAVA入门 之搭建环境
查看>>
Crypto API 学习
查看>>
EXTJS在IE9下出现兼容性问题
查看>>
thinkphp5 多图片拖拽上传,自己写的,不足之处请指正~
查看>>
将Unicon字符串转成汉字String C#
查看>>
Centos 6.7 4TB 硬盘LVM 水平扩容
查看>>
iOS11上手体验
查看>>
第一天的Oracle
查看>>
UML类图几种关系的总结
查看>>
Linux修改时区的正确方法【修改时间,需要修改软连接,靠谱】
查看>>
文件下载功能的实现【本文是excel下载】
查看>>
ffmpeg mp4 to hls
查看>>