面试题 08.08:有重复字符串的排列组合

简介: 面试题 08.08:有重复字符串的排列组合

题目

题目链接

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

示例1:

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

示例2:

输入:S = "ab"
 输出:["ab", "ba"]

解题

leetcode-47:全排列 II一样的思路

方法一:回溯

class Solution {
public:
    string path;
    vector<string> res;
    void backtracing(string& S,vector<bool>& used){
        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;
                path.push_back(S[i]);
                backtracing(S,used);
                path.pop_back();
                used[i]=false;
            }
        }
    }   
    vector<string> permutation(string S) {
        sort(S.begin(),S.end());
        vector<bool> used(S.size(),false);
        backtracing(S,used);
        return res;
    }
};

相关文章
|
1月前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
31 0
|
16天前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
1月前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
39 5
【刷题】 leetcode 面试题 01.06 字符串压缩
|
1月前
|
索引 Python Go
【python学习】字符串详解,面试必问公司的问题
【python学习】字符串详解,面试必问公司的问题
|
1月前
|
存储 Go 开发者
Golang深入浅出之-Go语言字符串操作:常见函数与面试示例
【4月更文挑战第20天】Go语言字符串是不可变的字节序列,采用UTF-8编码。本文介绍了字符串基础,如拼接(`+`或`fmt.Sprintf()`)、长度与索引、切片、查找与替换(`strings`包)以及转换与修剪。常见问题包括字符串不可变性、UTF-8编码处理、切片与容量以及查找与替换的边界条件。通过理解和实践这些函数及注意事项,能提升Go语言编程能力。
38 0
|
1月前
面试题 01.06. 字符串压缩
面试题 01.06. 字符串压缩
11 0
|
1月前
|
算法 测试技术 索引
力扣面试经典题之数组/字符串(二)
力扣面试经典题之数组/字符串(二)
18 0
|
1月前
|
存储 Java 编译器
Java字符串变量声明与赋值的常见面试题——完整剖析
Java字符串变量声明与赋值的常见面试题——完整剖析
25 1
|
1月前
|
算法 Java C++
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
57 0
|
5天前
|
设计模式 SQL JavaScript
java面试宝典全套含答案
java面试宝典全套含答案