首页 > 其他分享 >字符串的排列

字符串的排列

时间:2024-05-26 18:45:33浏览次数:18  
标签:排列 idx 示例 setVec str 字符串 返回值

描述

输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。

示例1

输入:
"ab"
返回值:
["ab","ba"]
说明:
返回["ba","ab"]也是正确的         

示例2

输入:
"aab"
返回值:
["aab","aba","baa"]

示例3

输入:
"abc"
返回值:
["abc","acb","bac","bca","cab","cba"]

示例4

输入:
""
返回值:
[""]

class Solution {
public:
     // 深度搜索
     void dfs(string &str, std::set<string> &setVec, int idx){
        if(idx == str.size()){
            setVec.insert(str);
            return ;
        }

        for(int i = idx; i < str.size(); i++){
                swap(str[i], str[idx]);
                dfs(str, setVec, idx + 1);
                swap(str[i], str[idx]);
            }
     }

    vector<string> Permutation(string str) {
        std::set<string> setVec;
        dfs(str, setVec, 0);
        return std::vector<string>(setVec.begin(), setVec.end());
    }
};

  

 

标签:排列,idx,示例,setVec,str,字符串,返回值
From: https://www.cnblogs.com/fly-code-jia/p/18214126

相关文章

  • Http请求携带JSON字符串,报错415
    //使用ajax向后端发送post请求,响应415letjsonObj={"username":"zhangsan","password":"1234"}Vue.createApp({data(){return{message:''}},methods......
  • 动态执行JS-把字符串当做代码去执行
    使用eval将字符串当做代码来执行functionzhiXing(strCode){eval(strCode)}zhiXing("console.log('hello')")在控制台会输出:helloeval的简单介绍1,eval是同步代码2,eval()执行代码时,读取变量是当前作用域;他会先去找当前作用域中有没有这个值;如果有就获取,如果......
  • 轻松拿捏C语言——【字符串函数】的使用及模拟实现
    ......
  • Go字符串及字符串拼接的反汇编代码解读
    Go字符串及字符串拼接的反汇编代码解读源代码packagemainfuncmain(){s:="helloworld"s+="go\n"print(s)}Go版本jagitch@34c4dd4d4a3e:str-demo$goversiongoversiongo1.22.2linux/amd64运行jagitch@34c4dd4d4a3e:str-demo$gorun......
  • 小猴编程周赛C++ | 字符串价值
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】一个字符串的价值定义为:该字符串所有字母价值之和,一个字母如果在字符串中是第一次出现,则该字母的价值为2,否则价值为1,并且......
  • KPM算法求字符串的最小周期证明
    先给出公式ans=n-LPS[n-1]其中ans为最小周期,n为给出的由假设的周期字符串中提取出的子串长度,LPS为前缀函数,n-1为字符串最后的位置下标证明如下证明ans=n-LPS[n-1],思路:(1)证明特殊情况,即先对完整周期字符串进行证明,这时候的字符串组成是[1][2][3][4],即4个......
  • 从零开始学习 Python 3 - 玩转字符串 2:字符串格式化高阶玩法
    玩转字符串2:字符串格式化高阶玩法前言回顾:字符串格式化的三种方式高阶玩法:让你的字符串格式化更上一层楼1.格式规格迷你语言:精细控制输出格式2.自定义格式化:`__format__()`魔法方法3.格式化字符串字面值:`f"..."`的灵活运用总结公众号:人生只不过是一场投资温......
  • 【每周例题】力扣 C++ 字符串相乘
    字符串相乘题目字符串相乘题目分析1.首先,题目上标出了一条:注意:不能使用任何内置的BigInteger库或直接将输入转换为整数。这就是这道题的难度所在2.这样子的话,我们可以从手写乘法计算来寻找思路: ①首先我们需要将各位相乘的结果放入数组ansArr中,我们使用双重for循环计算......
  • c语言字符串转int型
    c语言字符串转int型在C语言中,将字符串转换为int类型通常使用标准库函数atoi()(ASCIItointeger)或strtol()(stringtolong)。然而,需要注意的是这些函数不检查溢出,并且在转换无效字符串(如包含非数字字符的字符串)时可能会产生不可预测的结果。以下是如何使用这些函数的示例:使用atoi......
  • 头歌05-排列树实验-批处理作业调度
    """题目:给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。所有任务必须先由机器1处理完成后,才能由机器2处理,并且在机器2的处理顺序必须与机器1的处理顺序一致,处理顺序一旦确定不能改变。设作业Ji需要机器1的处理时间为Ai,需要机器2的处理时间为Bi......