剑指 Offer 38. 字符串的排列
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;/*** 剑指 Offer 38. 字符串的排列** 剪枝 DFS* 思想:、* 1 固定每一位置,依次搜索(DFS)* 2 剪枝:如果当前位置的字母已经重复了,直接放弃之后所有的搜索*/public class SolutionJZ38 {private List<String> res = new ArrayList<>();private char[] ch;public String[] permutation(String s) {ch = s.toCharArray();dfs(0);return res.toArray(new String[ch.length]);}private void dfs(int x) {if (x == ch.length - 1) {res.add(String.valueOf(ch));return;}HashSet<Character> set = new HashSet<>();for (int i = x; i < ch.length; i++) {if (set.contains(ch[i])) {continue;}set.add(ch[i]);swap(i, x);dfs(x+1);swap(i,x);}}private void swap(int a, int b) {char temp = ch[a];ch[a] = ch[b];ch[b] = temp;}
}
剑指 Offer 38. 字符串的排列相关推荐
- 【LeetCode】剑指 Offer 38. 字符串的排列
[LeetCode]剑指 Offer 38. 字符串的排列 文章目录 [LeetCode]剑指 Offer 38. 字符串的排列 package offer;import java.util.Hash ...
- ++递归 字符串全排列_剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" ...
- LeetCode——剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 题目 输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素.示例:输入:s = "abc" ...
- 【击败时间100%】剑指 Offer 38. 字符串的排列
立志用最少的代码做最高效的表达 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" 输出 ...
- list转字符串_剑指offer 38——字符串的排列
本题主要在于对回溯的理解,优化时可以结合 java 特性,以及排列的一些知识. 原题 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例 ...
- 【算法】剑指 Offer 38. 字符串的排列 【重刷】
1.概述 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" 输出:["abc ...
- 2021-09-01剑指 Offer 38. 字符串的排列
class Solution {public:vector<string> permutation(string s) {dfs(s, 0);return res;} private:ve ...
- 剑指 Offer 38. 字符串的排列(有重复元素的排列)
思路:dfs 暴搜 class Solution { public:vector<string> permutation(string s) {vector<string> a ...
- 【LeetCode笔记】剑指 Offer 38. 字符串的排列(Java、字符串、DFS)
文章目录 题目描述 思路 && 代码 二刷 打卡第五天- 题目描述 和这道题很相似,只是数据结构不同 思路 && 代码 DFS + 辅助访问数组 + Set 减枝 通过 ...
最新文章
- 为什么推荐 Java 程序员使用 Google Guava 编程
- 计算机网络五层协议简介
- python类实例_类和实例
- HDU 4162 Shape Number(最小表示法)
- Elasticsearch 实战经验总结
- C++之STL之priority_queue
- ping32终端安全管理系统_文档安全之Ping32文档外发管控使用详解
- oracle数据库使用之数据查询入门
- apereo cas mysql_史上最详细的 Apereo CAS 5.3开发教程:二、Apereo CAS 5.3 Server环境搭建,登录名,密码从数据库中获取...
- QTP不识别树结构中的点击事件
- [bzoj1025] [SCOI2009]游戏
- Java实现两个文件夹之间的同步(改进版)
- 手机QQ空间装逼代码收集
- 渗透测试-地基篇-Cobal Strike-taowu梼杌详细介绍(十九)
- GoogleEarth崩了!!除了重装还可以这样解决......
- java bl层,科普一下bl锁的知识,没解锁的必看!
- LCD显示屏加入百叶窗特效显示BMP图片
- gromacs ngmx_GROMACS教程
- maven工程读取resource资源文件(踩坑)
- vps、云服务器、虚拟主机
热门文章
- Git第六章:1.如何创建Github远程库、如何为远程库创建别名、如何推送本地库至github远程库、如何将github远程库拉取至本地库
- wps带阴影的边框怎么设置_win7系统下wps阴影边框的的图文教程?
- Linux 修复live CD光盘
- 什么工具可以分析php源代码,PHP_一个可以找出源代码中所有中文的工具,一个可以找出源代码中所有中 - phpStudy...
- 禅道项目管理软件配置及使用教程
- go-pear 的安装问题
- Windows电脑快速打开heic文件方法
- C语言字符串函数strcat,strcpy详解
- C++类和对象成员函数,静态成员,构造函数和析构函数、初始化列表
- APE,FLAC文件转WAV文件