博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
列出a,b,c的所有4位数排序可能。如:abca,abcb,abcc,acba(面试题)
阅读量:6208 次
发布时间:2019-06-21

本文共 1448 字,大约阅读时间需要 4 分钟。

朋友面试的时候一道面试题,感觉挺有意思的就来实现下。


首先我们来题目的意思是用abc排4个数,然后只能有2个数重复,有多少种排法?

比如:abca,abcb,abcc,acba


要形成这样的4位数,我们可以在abc中插入a或者b或者c;达到aabc,abac,abca。

思路有了,下面来看看怎么实现。


我们首先需要知道abc在不重复的情况下能够组合几种,abc,acb,bac,bca,cab,cba;6种模式。


然后遍历原数据abc,依次获取a或b或c,插入到已经的几种混排的方式中国,因为我们要形成4位数,所以我们遍历4次,插入的位置依次为0,1,2,3.


但是因为 abc,在0的位置插入a,和1的位置插入a,都是aabc,所有有些会是重复的,用new Set()来去重。最后输出结果。方法有了下面我们来看看代码怎么实现

//初始变量let array=[]; //输出数组let str='abc'; //原数据let len=4;  //排列的位数let b=str.split(''); //把原数据变为数组let cross=conversion(permutate(str)).length; //获取原数据交叉的不重复的数组

使用递归处理字符串有多少种交叉方式

/** *  *  * @param {any} str  //'abc' * @returns  */function permutate(str){    var result=[];    if(str.length==1){        return [str]    }else{        var preResult=permutate(str.slice(1));         for(var j=0;j

把数据转化

function conversion(len){    let result=[];    for(var i=0;i
for(var e=0;e
console.log(new Set(array));  //去除重复添加的数据Set {  'a,a,b,c',  'a,b,a,c',  'a,b,c,a',  'b,a,b,c',  'a,b,b,c',  'a,b,c,b',  'c,a,b,c',  'a,c,b,c',  'a,b,c,c',  'b,a,a,c',  'b,a,c,a',  'b,b,a,c',  'b,a,c,b',  'c,b,a,c',  'b,c,a,c',  'b,a,c,c',  'b,c,a,a',  'b,b,c,a',  'b,c,b,a',  'b,c,a,b',  'c,b,c,a',  'b,c,c,a',  'a,a,c,b',  'a,c,a,b',  'a,c,b,a',  'a,c,b,b',  'c,a,c,b',  'a,c,c,b',  'c,a,a,b',  'c,a,b,a',  'c,b,a,b',  'c,a,b,b',  'c,c,a,b',  'c,b,a,a',  'c,b,b,a',  'c,c,b,a' }console.log(new Set(array).size); //返回数组的长度 36

主要的是思路是在数据中插入一个数据,围绕这个来扩展开来。也希望大家指点错误,最后也希望大家喜欢,可以加入qq群439667347,大家一起讨论,一起进步,后续更新中...

转载地址:http://kgqca.baihongyu.com/

你可能感兴趣的文章
Bitmap尺度变换
查看>>
mybatis if-else(写法)
查看>>
apache 虚拟主机详细配置:http.conf配置详解
查看>>
ON DUPLICATE KEY UPDATE
查看>>
SRA秘钥生成与解密
查看>>
Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考) - 推荐
查看>>
JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别
查看>>
Word中摘要和正文同时分栏后,正文跑到下一页,怎么办?或Word分栏后第一页明明有空位后面的文字却自动跳到第二页了,怎么办?...
查看>>
android JNI调用(Android Studio 3.0.1)(转)
查看>>
元类型与类型的区别
查看>>
【Android Studio安装部署系列】目录
查看>>
长生生物狂犬病疫苗造假
查看>>
牛客网_Go语言相关练习_选择题(2)
查看>>
Spring Boot 静态资源访问原理解析
查看>>
[Leetcode] Next Permutation
查看>>
美国移民局的I797表原件和I129表是什么呢
查看>>
jqGrid + JSON + WebService 完整示例
查看>>
Delphi工具之TDUMP
查看>>
ASP.NET笔记(三)
查看>>
QEvent Class Reference
查看>>