2017.4.13腾讯实习,软件开发-运营开发岗,2面手撕组合排列C++代码
来源:互联网 发布:nginx内置参数 编辑:程序博客网 时间:2024/06/08 10:09
面试的时候没答出来,回去自己调试出来的源码。
#include#include #include #include using namespace std;//全排列int p_cnt = 0;void Permutation (string pStr, int pBegin){ if (pBegin == pStr.size()) { p_cnt++; cout << pStr << endl; } else { for (int i = pBegin; i < pStr.size(); ++i) { char temp = pStr[i]; pStr[i] = pStr[pBegin]; pStr[pBegin] = temp; Permutation (pStr, pBegin + 1); temp = pStr[i]; pStr[i] = pStr[pBegin]; pStr[pBegin] = temp; } }}//组合int c_cnt = 0;void Combination (string pStr, int m, int n, set s_c){ if (n == 0) { c_cnt++; set ::iterator iter; for (iter = s_c.begin(); iter != s_c.end(); iter++) { cout << *iter; } cout << endl; return; } if (m <= 0) { return; } else { Combination (pStr, m - 1, n, s_c); s_c.insert (pStr[pStr.size() - m]); Combination (pStr, m - 1, n - 1, s_c); }}int main (void){ string str = "abcde"; cout << "全排列:" << endl; Permutation (str, 0); cout << p_cnt << endl; set s_c; cout << "组合:" << endl; Combination (str, str.size(), 3, s_c); cout << c_cnt << endl; system ("pause"); return 0;}
0 0
- 2017.4.13腾讯实习,软件开发-运营开发岗,2面手撕组合排列C++代码
- 腾讯软件开发实习面试
- 2011腾讯实习招聘面试题软件开发
- 2014年腾讯暑假实习软件开发笔试题汇总
- 2014年腾讯暑假实习软件开发笔试题汇总
- 2014 腾讯笔试 开发 实习
- 2015腾讯实习生面试题后台开发岗
- 实习面经--腾讯 后台开发 v1
- 软件开发过程(实习体会)
- 软件开发实习小感悟
- 腾讯2014软件开发笔试
- 软件开发和运营的建模
- 软件开发和运营的建模
- 《开源合辑-(软件开发->代码生成)之(C++)》
- 《开源合辑-(软件开发->代码生成)之(C#)》
- 软件开发2:代码检视
- 个人实习过程(软件开发)
- Java软件开发实习生面试题总结
- MQTT 要点: Part 1 – MQTT介绍
- 僵尸进程和孤儿进程
- 算法的时间复杂度和空间负责度、最坏情况和平均情况
- 浅谈Java SE、Java EE、Java ME三者的区别
- 实验一:Guass列选主元消去法之C语言代码
- 2017.4.13腾讯实习,软件开发-运营开发岗,2面手撕组合排列C++代码
- eclipse版本-从3.1版本至4.6版本
- 请描述osi七层模型,并简要概括各层功能
- spring构造方法注入时间类型问题
- 一步一步写算法(之hash表)
- Android Studio 快捷键(mac版)
- 使用GCC开发动态库供java调用
- Highcharts 配置选项详细说明
- 学习OpenCV小记(1)读写视频并进行简单处理