当前位置: 首页 > news >正文

上海网站建设最好的公司南京网络推广网站

上海网站建设最好的公司,南京网络推广网站,泰安人才网最新招聘,做网站做本地服务器题目 输入一个长度为 n 字符串&#xff0c;打印出该字符串中字符的所有排列&#xff0c;你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围&#xff1a;n<10 要求&#xff1a;空间复…

题目


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

数据范围:n<10

要求:空间复杂度 O(n!),时间复杂度 O(n!)

输入描述:输入一个字符串,长度不超过10,字符只包括大小写字母。

示例1

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

示例2

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

示例3

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

示例4

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

思路


使用递归的思路,每次先交换一个字符(可以是自己),然后将这个字符固定,之后递归的将后面的字符进行一次全排列,最后记得每次递归完需要回溯,也就是将交换的字符还原。

另外原字符串中可能存在重复的字符,如“aab”,经过递归后会有重复的,所以可以使用set来保存结果,以达到去重的效果。

递归三件套:

  • 递归函数的功能:Permutation(int pos, string str), 表示固定字符串str的pos下标的字符str[pos]
  • 递归终止条件:当pos+1 == str.length()的时候,终止。完成了一次全排列。
  • 下一次递归:Permutation(pos+1, str), 很显然,下一次递归就是对字符串的下一个下标进行固定。

解答代码


#include <any>
#include <set>
#include <type_traits>
class Solution {
public:/*** @param str string字符串 * @return string字符串vector*/vector<string> Permutation(string str) {// write code herevector<string> ret{""};if (str.empty()) {return ret; }//用set去重set<string> no_repeat_ret;Permutation(0, str, no_repeat_ret);ret.assign(no_repeat_ret.begin(), no_repeat_ret.end());return ret;}void Permutation(int pos, string str, set<string>& no_repeat_ret) {if (pos+1 == str.length()) {// 递归终止条件:完成一次全排列no_repeat_ret.emplace(str);return;}for (int i = pos; i < str.length(); i++) {// 交换字符,固定一个字符swap(str[pos], str[i]);// 递归调用,对字符串的下一个下标进行固定Permutation(pos+1, str, no_repeat_ret);// 递归完需要回溯swap(str[pos], str[i]);}}
};
http://www.15wanjia.com/news/195568.html

相关文章:

  • 网站开发中加入cad功能如何做直播做菜视频网站
  • 建站平台免费加盟中国石化工程建设公司网站
  • 天水 网站建设 招聘微信公众号手机上传wordpress
  • 在哪个网站可以做车年检网页设计图片大小设置
  • 与做网站有关的参考文献五常网站建设
  • 网站用户互动网站建设私活
  • 网站建设公司开票开什么内容做付费软件网站
  • 自己怎么做网站赚钱厦门网站建设培训班
  • 一般网站建设需求有哪些企业做网站还是做平台好
  • 莱芜住房和城乡建设厅网站网店开店流程
  • 网站设计师薪资江西省飞宏建设工程有限公司 网站
  • 房地产中介网站深圳龙岗建网站公司
  • python+网站开发+prfwordpress自动添加动态内容
  • 佛山做企业网站莱州网监局
  • 淘宝客一定要建立网站天津企业网站模板建站哪家好
  • 机场网站建设需求邓州网站推广
  • 淘客类网站如何做排名nas无公网wordpress
  • 写网站的教程泉州关键词排名
  • 有关网站建设的毕业设计网站建设课程设计报告
  • 淘宝客怎么做推广网站网站建设 漳州
  • 做网站行业网站模板颜色
  • 江苏建设标准网站网站开发能自学吗
  • 官方网站面膜做代理东莞 包装制品 东莞网站建设
  • 做淘客网站简单吗iis做网站
  • 在做网站编代码网页导航条中的文字出现在导航条的下方怎莫解决公司做网站排名
  • 祥符网站建设网站开发大概要多少钱
  • 网站建设前端学什么语言创业平台
  • 网站建设便宜的公司哪家好老铁推荐个2021网站好吗
  • app网站模板下载不了Windows下配置WordPress
  • 国学网站源码深圳网站搜索引擎优化