十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
对于一个字符来说,只有一个排列就是其自身,那么对于多个字符的组合来说,也是有规律可循的:可以在字符串中选出一个字符来固定出头部,比如上述先用a来开头,那么后面的部分就由b、c来组成,之后再将b、c分别更换为头部,后面的就由剩下的字符来组成,而如果字符串中的字符比较多的时候,可以先从字符串的尾部开始排列,首先排列最后两个字符,交换后面两个字符,然后增加到三个字符,更换头部,排列剩下的部分,再依次增加到四个字符,更换头部,排雷剩下的部分......因此,这种思路可以用递归来实现:
#includeusing namespace std; void PrintAllArray(char* str, char *p_start) { if(str != NULL)//判断参数有效性 { //当遍历到字符串结尾的时候就应当将字符串打印出来 if(*p_start == '\0') { cout< 运行程序:
《完》
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文名称:字符串的排列——28-创新互联
标题来源:http://xjjierui.cn/article/epeej.html