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

宁波网站建设托管免费信息推广网站

宁波网站建设托管,免费信息推广网站,企业推广网站建设报价,采光板及采光瓦营销型网站建设文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 面试题 08.08. 有重复字符串的排列组合 一、题目描述 有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。 二、测试用例 示例 1: 输入&#…

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


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

一、题目描述

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

二、测试用例

示例 1:

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

示例 2:

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

提示:

字符都是英文字母。
字符串长度在[1, 9]之间。

三、解题思路

  1. 基本思路:
      使用回溯法,在利用散列表去重
  2. 具体思路:
    • 编写 dfs 函数
      • 如果字符串每个位置的元素都确定,则记录字符串到答案中。
      • 创建散列表
      • 确定第 k 个位置的字符,从第 k+1 到尾部选取一个字符进行交换
        • 如果散列表中存在该字符,表示重复,则跳过
        • 散列表记录该字符
        • 与第 k 个位置的字符交换
        • 递归确定第 k+1 个字符
        • 恢复状态
    • 调用 dfs 函数,返回结果。

四、参考代码

时间复杂度: O ( n ! ) \Omicron(n!) O(n!)【n 是字符串长度】
空间复杂度: O ( n ) \Omicron(n) O(n)

class Solution {
public:string str;vector<string> ans;void dfs(const int& k) {if (k == str.length()) {ans.emplace_back(str);return;}vector<bool> m(128, false);for (int i = k; i < str.length(); i++) {if (m[str[i]])continue;m[str[i]] = true;swap(str[k], str[i]);dfs(k+1);swap(str[k], str[i]);}}vector<string> permutation(string S) {str = S;dfs(0);return ans;}
};
http://www.dtcms.com/wzjs/820924.html

相关文章:

  • 镇江网站优化国家信用信息公示系统陕西
  • 网站建设及服务合同书泉州公司建设网站
  • 十大网络平台有哪些常熟seo关键词优化公司
  • 网站区域名怎么注册网站构架图怎么做
  • 六安哪家做网站不错做设计兼职的网站
  • 学校网站建设申请报告包装设计报价明细
  • 深圳营销型网站建设方案服务商品牌官网设计
  • 社区网站开发六安网站建设全包
  • 因酷网站建设广东佛山建筑工程有限公司
  • 百度网站开发业务h5页面制作软件手机版
  • 建设网站是不是要买服务器网站服务器更换
  • word如何做网站链接石家庄心雨网站建设
  • 云南省建设工程档案馆网站什么是电商文案
  • 济南历山北路网站建设wordpress主题大神
  • 做带支付平台的协会网站大概企业网站的必要性
  • 一个jsp做的购物小网站wordpress模板站如何安装
  • 湘潭做网站价格 q磐石网络网站建设中首页模板下载
  • 泉州专业网站制作公司如何做好网站建设和宣传
  • wordpress静态化插件汕头自动seo
  • 秦皇岛建设网站公司珠海网站艰涩和
  • 做网站编辑好还是新媒体编辑濮阳做网站多少钱
  • 如何规范网站使用专门做面条菜谱的网站
  • 金坛做网站怎么用iapp做网站软件
  • 做资讯网站需要哪些资质网站运营部门职责
  • 网站建设图片素材库物流网个人网站建设
  • 网站开发的公司电话域名注册 阿里云查询
  • 传统文化网站建设wordpress responsive theme
  • 招商加盟的网站应该怎么做合肥建站费用
  • 最新远程网站建设服务器山东做网站建设公司排名
  • 建站合同模板企业网页设计尺寸