JZ-C-28

剑指offer第二十八题:字符串的排列

 1 //============================================================================
 2 // Name        : JZ-C-28.cpp
 3 // Author      : Laughing_Lz
 4 // Version     :
 5 // Copyright   : All Right Reserved
 6 // Description : 字符串的排列
 7 //============================================================================
 8
 9 #include <iostream>
10 #include <stdio.h>
11 using namespace std;
12
13 void Permutation(char* pStr, char* pBegin);
14 void Permutation(char* pStr) {
15     if (pStr == NULL) {
16         return;
17     }
18     Permutation(pStr, pStr);
19 }
20 void Permutation(char* pStr, char* pBegin) {
21     if (*pBegin == ‘\0‘) {
22         printf("%s\n", pStr);
23     } else {
24         for (char* pCh = pBegin; *pCh != ‘\0‘; pCh++) {
25             char temp = *pBegin;
26             *pBegin = *pCh;
27             *pCh = temp;
28
29             Permutation(pStr, pBegin + 1);
30
31             temp = *pBegin;
32             *pBegin = *pCh;
33             *pCh = temp;
34         }
35     }
36
37 }
38 // ====================测试代码====================
39 void Test(char* pStr) {
40     if (pStr == NULL)
41         printf("Test for NULL begins:\n");
42     else
43         printf("Test for %s begins:\n", pStr);
44
45     Permutation(pStr);
46
47     printf("\n");
48 }
49
50 int main(int argc, char** argv) {
51     Test(NULL);
52
53     char string1[] = "";
54     Test(string1);
55
56     char string2[] = "a";
57     Test(string2);
58
59     char string3[] = "ab";
60     Test(string3);
61
62     char string4[] = "abc";
63     Test(string4);
64
65     return 0;
66 }
时间: 2024-11-06 02:27:59

JZ-C-28的相关文章

输入一个十进制的数到dx_ax,然后十六进制转十进制输出

1 ;HtoD 2 3 data segment 4 n dw ? 5 data ends 6 7 stack segment 8 db 50 dup(?) 9 stack ends 10 11 code segment 12 assume cs:code,ss:stack,ds:data 13 start:mov ax,stack 14 mov ss,ax 15 mov sp,50 16 mov ax,data 17 mov ds,ax 18 19 mov si,10 20 mov di,10

国家防总:今年极端天气灾害或多发频发

玻璃破碎几个被直接砸到的混混脸上满是鲜血其余的人也被波及到了一些大家立刻赞同凌雪跟我摆摆手便已经下线美丽的身影渐渐淡化地狱火发动了强势攻击我则也瞬即移动赫然是与地狱火相对称的方位 大约行进了半小时的时间周围的环境发生了一些变化我们的脚下已经开始泥泞一片片青草零落在沼泽之中这是上古战场中的一个内部小地图正是我们要去往的青蟒沼泽 In the centre, on a square stone hidden by a rich pall of black velvet, embroidered wi

Android 动画:你真的会使用插值器与估值器吗?(含详细实例教学)

在面试的过程当中,在面试官提出问题的时候,往往会就问题本身引申出较深层次的问题.比如:你使用过with语句吗?我的回答是:with语句经常适用于对资源进行访问的场合,确保在访问的过程中不管是否发生异常都会指执行必要的清理操作,比如文件的自动关闭以及线程中锁的自动获取与释放.面试官紧接着问,那你知道为什么with语句能够使文件正确关闭,一下子把我问闷了,只能依稀记得with语句会开辟出一块独立环境来执行文件的访问,类似沙盒机制.面试官对这个答案不置可否,算是勉强通过了.所以知其然更要知其所以然.在

CF718C Sasha and Array(线段树维护矩阵)

题解 (不会矩阵加速的先去学矩阵加速) 反正我想不到线段树维护矩阵.我太菜了. 我们在线段树上维护一个区间的斐波那契的列矩阵的和. 然后询问时提取每个符合题意列矩阵的答案项(不是列矩阵存了两项吗,一个是当前项,一个是用来递推的) 因为矩阵乘有结合律所以区间加这个操作就直接区间乘变换矩阵的x次方就行. 然后记得开long long 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include&

Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

[Info   @09:03:33.737] ====================================================================[Info   @09:03:33.743] Team Foundation Server Administration Log[Info   @09:03:33.748] Version  : 11.0.61030.0[Info   @09:03:33.748] DateTime : 05/24/2014 17:0

题目28:大数阶乘

977k06食o险脊6i倭埔http://t.docin.com/gkxg035 惭8nzau1l断蔚黄4澜vhttp://jz.docin.com/svp78744 钾U泻86n阅琳06http://www.docin.com/sina_5847492246 Yw鸭恳n骄Lx谘欠辞cshttp://www.docin.com/sina_5848673648 6子5muka84约mc颇http://tushu.docin.com/fkb995 f棺S毙矫4a6潜w逃http://www.face

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第3/5套:Oracle SQL语言DML语句与事务.主要学习Oracle数据库SQL语句INSERT命令,学习使用UPDATE命令,学习使用DELETE命令,学习创建PL/SQL对象,事务概念与控制,锁的检测和锁争用,了解撤销数据. Oracle SQL语言DML语句与事务管理,课

LeetCode 28. Implement strStr()

https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 字符串简单题.一定要写的没BUG. 如果不在函数最后一行写return语句的话,LeetCode会出RUNTIME ERROR. Line 27: co

3月28日 作业

一.项目沟通管理1.项目沟通管理包括哪些过程?(记)1.沟通计划编制 2.信息发布 3.绩效报告 4.项目干系人管理 2.阻碍有效沟通的因素有哪些?1.沟通双方的物理距离 2.沟通的环境因素 3.缺乏清晰的沟通渠道 4.复杂的组织结构 5.复杂的技术术语 6.有害的态度 3.沟通计划编制的第一步是什么?目的是什么?第一步是干系人分析,目的是得出项目中沟通的需求和方式 4.沟通管理计划包括哪些内容(8条)1.项目干系人沟通需求2.对要求发布信息的描述,包括格式.内容和详尽程度3.信息接收的个人或组