leetcode-字符串的排列-100

题目要求
在这里插入图片描述
思路
1.因为只涉及到字符,因此可以进行排序
2.创建临时字符串,当临时字符串temp的长度等于str的长度,作为判出条件。
3.创建一个标记的数组,每次在temp中插入一个字符,便在对应的数组下标设置为1,表示该字符已经使用
4.特殊情况处理,如果标记数组中表示这个字符已经使用过,则跳过。如果当前字符没有使用过,但是该字符和前一个字符相同,且前一个字符已经使用过,则也跳过。防止结果中出现两次aab的结果。
代码实现

class Solution {
public:vector<string> Permutation(string str) {sort(str.begin(), str.end());vector<int> vis(str.size(), 0);vector<string> res;string temp;per(res, str, temp, vis);return res;}void per(vector<string> &res, string &str, string &temp, vector<int> &vis){if(str.length() == temp.length()){res.push_back(temp);return;}for(int i = 0; i < str.length(); i++){if(vis[i] == 1)continue;if(i > 0 && str[i] == str[i-1] && vis[i-1] == 1)continue;vis[i] = 1;temp.push_back(str[i]);per(res, str, temp, vis);vis[i] = 0;temp.pop_back();}}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/675632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初期Linux

一&#xff0c;系统分为 1.1window系统 个人 &#xff1a;win7&#xff0c;win8&#xff0c;Win10&#xff0c;Win11服务器版&#xff1a;window server 2003&#xff0c;window server 2008 1.2Linux系统 centos7redhatubantukali 1.3什么是Linux&#xff1f; Linux是基…

C++变量的作用域与存储类型

一 变量的作用域和存储类型 1 变量的作用域(Scope) 指在源程序中定义变量的位置及其能被读写访问的范围分为局部变量(Local Variable)和全局变量(Global Variable) 1&#xff09;局部变量(Local Variable) 在语句块内定义的变量 形参也是局部变量 特点&#xff1a; 生存期是…

YzmCMS 7.0任意函数调用RCE 漏洞研究分析

YzmCMS是一款基于YZMPHP开发的一套轻量级开源内容管理系统,YzmCMS简洁、安全、开源、免费,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,专注为公司企业、个人站长快速建站提供解决方案。 YzmCMS 某些接口调用了 db_pdo类的where方法 导致了远程命令执行漏洞&#xf…

python菜鸟级安装教程 -下篇(安装编辑器)

来来~接着上篇的来~ 安装好python.exe之后&#xff0c;我们可以根据cmd命令窗口&#xff0c;码代码。 这算最简单入门了~ 如果我们在安装个编辑器。是什么效果&#xff0c;一起体验一下吧 第一步&#xff0c;下载编辑器&#xff0c;选择官网&#xff0c;下载免费版本入门足…

图解HTTP(2、简单的 HTTP 协议)

HTTP 协议用于客户端和服务器端之间的通信 请求访问文本或图像等资源的一端称为客户端&#xff0c;而提供资源响应的一端称为服务器端。 通过请求和响应的交换达成通信 请求必定由客户端发出&#xff0c;而服务器端回复响应报文 请求报文是由请求方法、请求 URI、协议版本、…

【Gaea+UE5】创建基本的大型世界场景

目录 效果 步骤 一、在Gaea中生成地形 二、确定导出的地形规模 三、在UE中创建地形 四、验证UE创建的地形规模是否正确 五、使用M4自动地形材质 效果 步骤 一、在Gaea中生成地形 1. 打开Gaea官网下载软件 2. 打开Gaea软件&#xff0c;我们可以选择一个预设的山体 创…

【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐PyMuPDF+tqdm)

本文将会被汇总至 【记录】Python3&#xff5c;2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果&#xff08;汇总&#xff09;&#xff0c;更多其他工具请访问该文章查看。 文章目录 PyMuPDF 使用体验与评估1 安装指南2 测试代码3 测试结果3.1 转 HTML …

docker资源限额

多数的应⽤场景要对Docker容器的运⾏内存进⾏限制&#xff0c;防⽌其使⽤过多的内存。 格式&#xff1a;-m或--memory 正常的内存大小 [rootadmin ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

封装Springboot基础框架功能-03

在些模块中汇总了一些web开发常用的配置和功能。 模块源码结构 Restful API常用定义 QueryParam请求参数 Data public class QueryParam {private String key;private String value; }RestfulController实现 RestfulController.java&#xff0c;主要汇总一些常用的restful的…

C++基础——深拷贝和浅拷贝

C中类的拷贝有两种&#xff1a;深拷贝&#xff0c;浅拷贝&#xff1a;当出现类的等号赋值时&#xff0c;即会调用拷贝函数 一、概念 浅拷贝&#xff1a;同一类型的对象之间可以赋值&#xff0c;使得两个对象的成员变量的值相同&#xff0c;两个对象仍然是独立的两个对象&#…

所向披靡のmakefile

在VS里敲代码&#xff0c;只需要FnF5就可以直接运行勒&#xff0c;在Linux下敲代码却要即敲命令还要用编辑器还要用编译器&#xff0c;那在Linux下有没有能帮我们进行自动化组建的工具呢&#xff1f; 当然有&#xff0c;超级巨星&#xff1a;makefile&#xff01;&#xff01;…

linux进阶篇:Nginx反向代理原理与案例详解

Linux服务搭建篇&#xff1a;Nginx反向代理原理与案例详解 一、什么是正向代理 举个栗子&#xff1a; 我们在校外、公司外&#xff0c;是访问不到学校、公司的内网的&#xff0c;但是我们想要访问内网资源时&#xff0c;会用到VPN。而一般内网会存在一个VPN服务器&#xff0c…