面试题 08.08. 有重复字符串的排列组合
有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。

示例1:

 输入:S = "qqe"输出:["eqq","qeq","qqe"]

示例2:

 输入:S = "ab"输出:["ab", "ba"]
class Solution {
public:vector<string> permutation(string S) {vector<string> res;int len = S.size();vector<bool> used(len, false);//一定要排序sort(S.begin(), S.end());string path = "";helper(res, S, used, path);return res;}void helper(vector<string> &res, string S, vector<bool> &used, string path){if(path.size() == S.size()){res.push_back(path);return;}for(int i = 0; i < S.size(); ++i){if(i > 0 && S[i] == S[i - 1] && used[i - 1] == false){continue;}if(used[i] == false){used[i] = true;// swap(S[level], S[i]);path.push_back(S[i]);helper(res, S, used, path);// swap(S[level], S[i]);path.pop_back();used[i] = false;}}}
};

面试题 08.08. 有重复字符串的排列组合相关推荐

  1. 程序员面试金典 - 面试题 08.07. 无重复字符串的排列组合(回溯)

    1. 题目 无重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同. 示例1:输入:S = "qwe"输出:["qwe", & ...

  2. 面试题 08.08. 有重复字符串的排列组合-快速排序+回溯深度优先搜索

    面试题 08.08. 有重复字符串的排列组合+快速排序加回溯深度优先搜索 有重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合. 示例1: 输入:S = "qqe" 输 ...

  3. leetcode面试题 08.08. 有重复字符串的排列组合(回溯)

    有重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合. 示例1: 输入:S = "qqe" 输出:["eqq","qeq",&q ...

  4. 【亡羊补牢】挑战数据结构与算法 第18期 LeetCode 面试题 08.08. 有重复字符串的排列组合(递归与回溯)

    仰望星空的人,不应该被嘲笑 题目描述 有重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合. 示例1: 输入:S = "qqe"输出:["eqq", ...

  5. 无重复字符串的排列组合

    无重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同. 示例1: 输入:S = "qwe" 输出:["qwe", " ...

  6. JAVA练习177-有重复字符串的排列组合

    有重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合. 示例1:  输入:S = "qqe"  输出:["eqq","qeq", ...

  7. java字符串字符排列组合_如何在Java中查找字符串的所有排列

    java字符串字符排列组合 In this tutorial, we will learn how to find the permutation of a String in a Java Prog ...

  8. 数据结构与算法--字符串的排列组合问题

    字符串的全排列 题目:输入一个字符串,打印出改字符串中所有字符的所有排列.例如输入字符串abc,那么打印出由a,b,c字符组成的所有字符串:abc,acb,bac,bca,cab,cba 如何求解全排 ...

  9. 字符串所有排列组合暴力递归

    给你一个字符串"acb",可以打印出六种排列组合,这里又是一种index推动的递归,但是这里有一些小trick,就是从第一个开始,在后面的字符串的每一个字符进行交换,这样就可以省很 ...

最新文章

  1. SystemCenterOperationsManager2012 SP1系列文章
  2. 富士施乐打印机-查看端口号
  3. About Gnu Linker2
  4. Java接口程序练习
  5. Linux管理磁盘配额
  6. 自旋锁spin : spin_lock_irq , spin_lock_irqsave
  7. matlab简单分析数字滤波器FIR
  8. C#全局钩子参考文章
  9. Linux下修改MAC值
  10. Dreamweaver CS6 行为概述
  11. multisim收敛助手有啥用_Multisim 收敛助手报告
  12. LOG4J2-MDC-全链路跟踪等功能研究
  13. Java —— 冒泡排序
  14. 小博无线认证无法连接服务器,路由器wan口认证失败
  15. navicat 导出excel数据不全问题
  16. Android:关灯游戏简单闯关
  17. 考研复试计算机英文介绍,2017年考研复试计算机专业英文自我介绍.doc
  18. html背景音乐火狐兼容,Firefox 中的 HTML5 音视频
  19. SpringCloudAlibaba实现<实名认证-身份证二要素>
  20. OSI7层模型数据分层传输的过程

热门文章

  1. linux强行安装软件,linux软件安装
  2. 09. Volume Framework||Volume Overrides
  3. 开源点云数据处理 开源_云供应商现在正在推动开源
  4. 【DM】达梦DCA培训及考试认证
  5. 点击添加Class active属性
  6. word中图形或文本框的组合问题
  7. Kettle — 集群使用
  8. linux apache配置工作牡蛎,高山linux docker上的apache-spark启动错误
  9. 2012年9月 《UDID罗生门》
  10. 论文查重参考文献算不算?