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;
}

最新文章

  1. 【流量劫持】躲避 HSTS 的 HTTPS 劫持
  2. C#双链表
  3. odeforces Beta Round #77 (Div. 2 Only)
  4. PDF 补丁丁 0.4.2.1023 测试版发布:新增旋转页面功能
  5. 剑指offer—第三章高质量的代码(按顺序打印从1到n位十进制数)
  6. 168. Excel Sheet Column Title
  7. 使用Battery Historian(android 5.0)
  8. mysql 索引创建规则
  9. Windows 8 动手实验系列教程 实验6:设置和首选项
  10. shell相关命令
  11. hadoop2.6.0实践:002 检查伪分布式环境搭建
  12. 第二届强网杯wp
  13. Jmeter之csv参数化
  14. BZOJ.2726.[SDOI2012]任务安排(DP 斜率优化)
  15. laravel5实现第三方登录(微信)
  16. 安卓开发_浅谈Fragment之ListFragment
  17. vi与vim
  18. 中大 9095. Islands
  19. 给Java开发人员的Play Framework(2.4)介绍 Part1:Play的优缺点以及适用场景
  20. Composite 组合模式 树 递归 MD

热门文章

  1. springboot配置文件读取pom文件信息
  2. JZOJ 5326. LCA 的统计 (Standard IO)
  3. Spring Boot从入门到精通(七)集成Redis实现Session共享
  4. 用vue-cli进行npm run dev时候Cannot GET/
  5. ML-Agents(二)创建一个学习环境
  6. npm 安装包总结
  7. node 微信授权 获取openid
  8. 建议8:恰当选用if和switch
  9. 【TIJ4】第四章全部习题
  10. [组件封装]微信小程序-图片批量上传照片墙