w3cshool -- 排列组合去重算法挑战
2024-08-24 21:18:35
function permAlone(str) {
if(str.length == 1) return str;
var a = str.substr(0, 1), one = [a], count = 0, toggle = true;
for(var i = 0; i< str.length-1; i++) {
var temp = str[i+1]; // 取出需要插入的字母
one = cha(one, temp)
}
// 判断数组是否有连续重复的
for(var k = 0; k<one.length; k++){ //获取数组中的每一项
for(var l = 0; l<one[k].length-1; l++){ //遍历每一项的字符串
if(one[k][l] == one[k][l+1]) { // 如果存在有连续两个相等的字母
// 决策变量,判断是否合格
toggle = false;
break;
} else {
toggle = true;
}
}
// 判断toggle 是否为true
if(toggle) count++;
}
return count;
} permAlone('abfdefa'); /*
插值算法
str: 需要被插入的数组
v: 需要插入的字母
*/
function cha(str, v) {
var len = str.length; // 获取数组长度
var arr = [] // 最后需要返回的数组
for(var i = 0; i<len; i++) {
for(var j = 0; j<str[i].length+1; j++){ //需要插入的次数等于字符串长度加一
var star = str[i].substring(0, j)
var end = str[i].substring(j, str[i].length);
var ok = star + v + end;
arr.push(ok);
}
}
return arr;
}
最新文章
- 【流量劫持】躲避 HSTS 的 HTTPS 劫持
- C#双链表
- odeforces Beta Round #77 (Div. 2 Only)
- PDF 补丁丁 0.4.2.1023 测试版发布:新增旋转页面功能
- 剑指offer—第三章高质量的代码(按顺序打印从1到n位十进制数)
- 168. Excel Sheet Column Title
- 使用Battery Historian(android 5.0)
- mysql 索引创建规则
- Windows 8 动手实验系列教程 实验6:设置和首选项
- shell相关命令
- hadoop2.6.0实践:002 检查伪分布式环境搭建
- 第二届强网杯wp
- Jmeter之csv参数化
- BZOJ.2726.[SDOI2012]任务安排(DP 斜率优化)
- laravel5实现第三方登录(微信)
- 安卓开发_浅谈Fragment之ListFragment
- vi与vim
- 中大 9095. Islands
- 给Java开发人员的Play Framework(2.4)介绍 Part1:Play的优缺点以及适用场景
- Composite 组合模式 树 递归 MD