首页 > 编程语言 >剑指offer 字符串的排列(C++)

剑指offer 字符串的排列(C++)

时间:2022-12-19 19:39:16浏览次数:48  
标签:字符 begin offer res C++ length str 字符串


题目描述

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:

输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

解题思路

递归加for循环,可以实现字符的全排列。

代码实现

class Solution {
public:
vector<string> res;
void Permute(string str, int begin){
if(begin == str.length()){
res.push_back(str);
return;
}
for(int i = begin; i < str.length(); i++){
if(i != begin and str[begin] == str[i])
continue;
swap(str[begin], str[i]);
Permute(str, begin + 1);
swap(str[begin],str[i]);
}
}
vector<string> Permutation(string str) {
if(str.length() == 0)
return {};
Permute(str, 0);
sort(res.begin(), res.end());
return res;
}
};


标签:字符,begin,offer,res,C++,length,str,字符串
From: https://blog.51cto.com/u_15917702/5953702

相关文章

  • 剑指offer 二叉树的镜像(C++)
    问题描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/\610/\/\57911镜像二叉树......
  • LeetCode 两数之和,三数之和,最接近的三数之和,四数之和(C++)
    1.两数之和问题描述给定一个整数数组​​nums​​​和一个目标值​​target​​,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入......
  • LeetCode 有关二叉树的算法题目(C++)
    0、NULL与nullptr的区别在C语言中,​​NULL​​​通常被定义为:​​#defineNULL((void*)0)​​​。因为在C语言中把空指针赋给​​int​​​和​​char​​​指针的时候,发......
  • 剑指offer 题解目录(C++)
    序号题目知识点难度1​​二维数组中的查找​数组查找较难2​​替换空格​字符串较难3​​从尾到头打印链表​链表较难4​​重建二叉树​树中等5​​用两个栈实现队列......
  • C++实现checksum校验和计算
    校验和概念差错控制编码是为了检查传输中的错误下面将一个报文的数据部分称为d,报文的冗余部分称为r发送方根据约定好的差错控制编码关系(关系指出dr之间的关系)和d生成出......
  • C++查看变量类型
    转自:https://blog.csdn.net/Koyurion/article/details/863155321.用法#include<typeinfo>//需要包含头文件typeid(data).name()//打印值:bool:......
  • C++_数组-结构体-枚举-联合体
    C++1.相同类型的数据01.C++数组(array)是一种顺序容器sequencecontainer,是由单一数据类型元素组成的一个有序集合元素类型元素个数数组名称使用......
  • C++ Assert()断言机制原理以及使用
    机器学习以及人工智能的学习需要扎实的数学功底才能走的更远,爬的更高,所以打好数学基础是关键,但无论工作学习都没有充足的时间去拿着书本一个字一个字的去学习了,这里我建议大......
  • C#随机生成字符串
    C#随机生成字符串字符串长度由num决定privatestringGenerateCheckCode(intnum){intnumber;charcode;stringcheckC......
  • 【C++入门】(三)循环结构
    一.while循环循环版的if语句。if语句是判断一次,如果条件成立,则执行后面的语句while是每次判断,如果成立,则执行循环体中的语句,否则停止#include<iostream>using......