基于visual Studio2013解决面试题之0708字符串全排列




题目



解决代码及点评

/*
	给出一个函数来输出一个字符串的所有排列
	解决方法:采用递归
*/

#include <iostream>
using namespace std;


/* 找pszBuf,从pBegin开始的全排列 */
void Perm(char *pszBuf, char *pBegin)
{
    if (pszBuf == NULL || pBegin == NULL)
    {
        return;
    }
    
	// 如果pBegin是最后一个字符,则输出一串全排列
    if (*pBegin == '\0')
    {
        cout<<pszBuf<<endl;
    }
	//  遍历整个字符串,进行排列
    else
    {
        char *pTmp;
		// 从第一个字符遍历到最后一个
        for (pTmp = pBegin; *pTmp != '\0'; pTmp++)
        {
			// 交换当前和pBegin
            char cTmp;
            cTmp = *pTmp;
            *pTmp = *pBegin;
            *pBegin = cTmp;

			// 递归调用全排列函数
            Perm(pszBuf, pBegin+1);

			// 再交换回来
            cTmp = *pTmp;
            *pTmp = *pBegin;
            *pBegin = cTmp;        
        }
    }
}

// 测试主函数
int main()
{
    char szBuf[5] = "abc";

    Perm(szBuf, szBuf);
    system("pause");
    
    return 0;
}


代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn


下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”


2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行


程序运行结果









posted on 2013-12-19 20:25  三少爷的剑123  阅读(145)  评论(0编辑  收藏  举报

导航