首页 > 其他分享 >全排列问题

全排列问题

时间:2024-06-21 15:45:29浏览次数:6  
标签:... arr 排列 问题 Arrange1 let str arrRes

 1 let str = "abbd"
 2 function Arrange(str) {
 3     if (str.length<=2) {
 4         return str.length===2?[str,str[1]+str[0]]:[str]
 5     }
 6     let arrRes = []
 7     let arrStr = str.split('');
 8     for (let i = 0; i < arrStr.length; i++) {
 9         let s1= str.slice(0,i)
10         let s2= str.slice(i+1)
11         let arr = Arrange(s1+s2);
12         let res =  arr.map(e=>e+str[i])
13         arrRes = Array.from(new Set([...arrRes,...res]))
14     }
15    return arrRes
16 }
17 console.log(Arrange(str));



 

 1 function Arrange1(str) {
 2     if (str.length<=2) {
 3         return str.length===2?[str,str[1]+str[0]]:[str]
 4     }
 5 
 6     return str.split('').reduce((l,n,i) => {
 7         let arr = Arrange1(str.slice(0, i)+str.slice(i+1))
 8         return [...l,...Array.from(new Set(arr.map(e=>n+e)))]
 9     },[]);
10 }
11 let str = "abbd"
12 console.log(Arrange1(str));

 

标签:...,arr,排列,问题,Arrange1,let,str,arrRes
From: https://www.cnblogs.com/sjfeng/p/18260636

相关文章

  • 洛谷 P1030 [NOIP2001 普及组] 求先序排列
    因为题目求先序,意味着要不断找根。那么我们来看这道题方法:(示例)中序ACGDBHZKX,后序CDGAHXKZB,首先可找到主根B;那么我们找到中序遍历中的B,由这种遍历的性质,可将中序遍历分为ACGD和HZKX两棵子树,那么对应可找到后序遍历CDGA和HXKZ(从头找即可)从而问题就变成求1.中序遍历ACGD,后序......
  • LIS 问题
    LIS问题LIS,即最长上升子序列。1.朴素的求法使用动态规划,\(dp_i\)代表以第\(i\)位结尾的最长上升子序列长度。得动态转移方程:\[dp_i=\max_{j<i\text{且}a_i>a_j}dp_j+1\]Code1#include<iostream>usingnamespacestd;#defineMAXN100005inta[MAXN],f......
  • LCS 问题
    LCS问题LCS,即最长公共子序列。1.朴素的求法使用动态规划,\(dp_{i,j}\)代表以序列\(a\)第\(i\)个字母结尾,序列\(b\)第\(j\)个字母结尾的LCS长度。得动态转移方程:\[dp_{i,j}=\left\{\begin{matrix}\max(dp_{i-1,j},dp_{i,j-1})&a_i\neb_j\\dp_{i-1,j-1}......
  • 解锁测试管理的核心问题,提升你的管理实力!
    如何打造积极向上,主动,执行力强,不推诿,不甩锅,服从安排,和谐,互帮互助的团队?如何有效的追踪团队的测试效率,后续对测试时间,质量等评估做支持?作为测试管理的你,是不是会遇到各种问题,不知道如何处理?霍格沃兹测试开发学社于本周六组织了测试管理圆桌讨论会 。本次邀请了多位名企测试管理......
  • Tcp粘包半包问题(现实场景举例帮助理解)
    理解粘包问题时,我们可以将这个过程想象得更加生活化一些。想象你正在经营一家水果拼装店,你的任务是接收来自不同客户的水果订单,并将这些水果按照订单要求重新组装起来。每份订单中的水果都事先被切成了便于快递的“水果片”,并通过同一条传送带送过来。现在,你收到了两份订单,一......
  • 数位统计DP——AcWing 338. 计数问题
    数位统计DP定义数位DP(DigitalDP)是一种用于解决与数字的数位相关问题的动态规划算法。它将数字的每一位看作一个状态,通过转移状态来计算满足特定条件的数字个数或其他相关统计信息。运用情况统计满足特定条件的数字个数,例如在给定范围内有多少个数字满足某些数位特征。计算......
  • Python 学习 第三册 第12章 图的最优化问题
    ----用教授的方式学习。目录12.1图的最优化问题12.1.1最短路径:深度优先搜索和广度优先搜索12.1图的最优化问题我们下面研究另一种最优化问题。假设你有一个航空公司航线的价格列表,其中包括美国任意两个城市之间的航班价格。假设有3个城市A、B和C,从A出发经过B到达C的价格......
  • 解决页面刷新后firefox浏览器中iframe内容不更新的问题
    最近遇到了一个问题:使用firefox浏览切换2层iframe下的某个页面后iframe内容未更新,Chrome和Edge浏览器并无这个问题。在这个项目中,最外层的iframe用于隐藏url,里层的iframe用于给不同参数的url提供一个统一地址以便于权限路由等控制。 由于项目比较复杂,用简单的代码很难去复现这个......
  • 【转载】解决使用 git 时出现unable to access “xxx‘: error settingcertificate ve
    1、出现原因:在使用idea的时候,进行git下的push,出现下面的错误:2、原因分析:检查idea中git的安装位置是否发生了变化3、解决方案:找到git的安装路径,双击打开git-bash.exe进行输入:gitconfig--systemhttp.sslverifyfalse问题解决!!!......
  • svg标签内容导出为svg文件问题
     原本的代码://大概代码层级//html代码<divref="svgContainer"><div>//js代码//1、div中添加svgconstsvg=d3.select(svgContainer.value).append("svg).attr("id",svgElement").attr("xmlns","http://www......