【思路】从第一位开始,判断每一位字符的所有可能性,依此递归。

 class Solution
{
public:
void PermutationHelp(vector<string> &ans, int k, string str) //遍历第k位的所有可能
{
if(k == str.length() - )
ans.push_back(str);
set<char> S;//记录出现过的字符
sort(str.begin() + k, str.end());//保证按字典序输出
for(int i = k; i < str.length(); i++)
{
if(S.find(str[i]) == S.end()) //只和没交换过的换
{
S.insert(str[i]);
swap(str[i], str[k]);
PermutationHelp(ans, k + , str);
swap(str[i], str[k]);//复位
}
}
}
vector<string> Permutation(string str)
{
vector<string> ans;
PermutationHelp(ans, , str);
return ans;
}
};

最新文章

  1. How to Delete XML Publisher Data Definition Template
  2. codeblocks+Mingw 下配置开源c++单元测试工具 google test
  3. row_number() over order by与利用rownum查询分页效率分析
  4. ViewPage显示Fragment集合实现左右滑动并且出现tab栏--第三方开源--SlidingTabLayout和SlidingTabStrip实现
  5. IOS 时间 日历 处理集合
  6. Android Environment 判断sd卡是否挂载 获取sd卡目录
  7. [C++程序设计]对“&amp;”和“*”运算符
  8. QT在Windows控制台下输出
  9. 读 Working with forms 一些心得
  10. SAP CRM 为用户创建业务合作伙伴并分配到组织单位
  11. Java客户端调用.NET的WebService
  12. Mybatis(二)参数(Parameters)传递
  13. 「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)
  14. Android开发之漫漫长途 XIV——RecyclerView
  15. 将分支推送到远程存储库时遇到错误: Git failed with a fatal error. TaskCanceledException encountered.
  16. Android L2TP Client Setup
  17. httpd配置
  18. make_blobs
  19. Count the Sheep 思维题
  20. C# Excel To DataTable

热门文章

  1. JDBC编程:使用 Statement 修改数据库
  2. 实践笔记-VA05 销售订单清单 增加字段
  3. vs2017升级、安装
  4. Spring笔记1
  5. Linux编译移植Qt5的环境_OMAPL138平台
  6. 《PHP内核探索系列文章》系列分享专栏
  7. C语言实例解析精粹学习笔记——34(用“结构”统计学生成绩)
  8. rhel6.4 根目录扩容
  9. 基于vue来开发一个仿饿了么的外卖商城(一)
  10. AVL重平衡细节——插入