FreeCodeCamp初级算法
来源:互联网 发布:手机淘宝淘宝客 编辑:程序博客网 时间:2024/06/16 06:46
FreeCodeCamp里面的初级算法,思路可能不是最好的,但能达到效果,顺利通关。写的不好,多多包涵。
// 算法
// 1.Reverse a String 翻转字符串
function reverseString(str) { // 请把你的代码写在这里 // 1.分割字符串 成为数组 var arr = str.split(""); // 2. 数组倒转 arr.reverse(); // 3.数组连接为字符串 var newString = arr.join(""); return newString;}
// 2. Factorialize a Number 计算一个整数的阶乘
/*
* 计算一个整数的阶乘
如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。
阶乘通常简写成 n!
例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
* */
function factorialize(num) { // 请把你的代码写在这里 // 1.循环获得所有数字,放进数组里面 var arr = []; for (var i = num; i > 0; i--) { arr.push(i); } // 2.相乘 利用 map来快速 var times = 1; arr.map(function (val) { times *= val; }); return times;}
// 3.Check for Palindromes 检查回文字符串
/*
* 如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。
* */
function palindrome(str) { // 请把你的代码写在这里 // 1. 把字符串分割成数组 // 1.1 去除空格 符号 /[^A-Za-z0-9]/g 匹配数字和字母 var re = /[\W]/g; // var re = /[^A-Za-z0-0]/g; // 1.2 全部转为小写,然后匹配到字母和数字,这样就过滤到了符号 var lowRegStr = str.toLowerCase().replace(re, ''); // 1.4 分割 var arr = str.split(""); // 1.5 提取纯字符串 var zStr = arr.join(""); // 2. 数组倒转 arr.reverse(); // 3.数组连接为字符串 var newString = arr.join(""); // 4.比较 return zStr === newString;} var re = /[\W_]/g; // 或者 var re = /[^A-Za-z0-9]/g; // var lowRegStr = str.toLowerCase().replace(re,''); // var reverseStr = lowRegStr.split('').reverse().join(''); // return reverseStr === lowRegStr;
// 4.Find the Longest Word in a String 寻找句子中最长的单词
function findLongestWord(str) { // 请把你的代码写在这里 // 1.分割为一个个单词 var arr = str.split(' '); // 2. 比较每一个单词的长度 var count = 0; for (var i = 0; i < arr.length; i++) { if (arr[i].length > count) { count = arr[i].length; } } return count;}
// 5. Title Case a Sentence 句中单词首字母大写
function titleCase(str) { // 请把你的代码写在这里 // 1. 分割句子为单词 var arrWord = str.split(' '); // 2. 分割单词为字母 var resultArr = []; for (var i = 0; i < arrWord.length; i++) { var arrChar = arrWord[i].split(''); var lowArr = []; // 全部转为小写 for (var j = 0; j < arrChar.length; j++) { if (j == 0) { lowArr.push(arrChar[0].toUpperCase()); } else { lowArr.push(arrChar[j].toLowerCase()); } } // 连接为单词 var word = lowArr.join(''); resultArr.push(word); } // 4. 单词连接成句子返回 var resultString = resultArr.join(' '); return resultString;}
// 6. Return Largest Numbers in Arrays 返回数组中的最大值 二维数组
function largestOfFour(arr) { // 请把你的代码写在这里 // 循环数组,取出最大值,放入新的数组 var resultArr = []; for (var i = 0; i < arr.length; i++) { var bignum = 0; for (var j = 0; j < arr[i].length; j++) { if (arr[i][j] > bignum) { bignum = arr[i][j]; } } // 放入结果数组 resultArr.push(bignum); } return resultArr;}
// 7. Confirm the Ending 检查字符串结尾
function confirmEnding(str, target) { // 请把你的代码写在这里 // 截取 要比较的文字长度,然后进行比较 var subStr = str.substr(str.length - target.length, target.length); return subStr === target;}
// 8. Repeat a string repeat a string 重复输出字符串
function repeat(str, num) { // 请把你的代码写在这里 if (num < 0) { return ""; } var resultStr = ""; for (var i = 0; i < num; i++) { resultStr += str; } return resultStr;}
// 9. Truncate a string 截断字符串
function truncate(str, num) { // 请把你的代码写在这里 // 如果长度小于等于3 if (num <= 3) { return str.slice(0, num) + "..."; } if (str.length <= num) { return str.slice(0, num); } else { return str.slice(0, num - 3) + "..."; }}
// 10. Chunky Monkey 猴子吃香蕉, 分割数组
function chunk(arr, size) { // 请把你的代码写在这里 var resultArr = []; for (var i = 0; i < arr.length; i+= size) { resultArr.push(arr.slice(i, i+size)); } return resultArr;}
// 11. Slasher Flick 截断数组
function slasher(arr, howMany) { // 请把你的代码写在这里 return arr.splice(howMany, arr.length - howMany);}
// 12. Mutations 比较字符串
function mutation(arr) { // 请把你的代码写在这里 // 全部转为小写 var firstName = arr[0].toLowerCase(); var lastName = arr[1].toLowerCase(); // 2.把第二个单词分割 var lastArr = lastName.split(''); // 遍历 for (var i = 0; i < lastArr.length; i++) { if (firstName.indexOf(lastArr[i]) < 0) { return false; } } return true;}
// 13. Falsy Bouncer
/*
* 过滤数组假值
(真假美猴王)
删除数组中的所有假值。
在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。
* */
function bouncer(arr) { // 请把你的代码写在这里 return arr.filter(function (val) { return Boolean(val) === true; });}
// 14. Seek and Destroy 摧毁数组
function destroyer(arr) { // 请把你的代码写在这里 // 把函数传入的参数转换为数组 var args = Array.prototype.slice.call(arguments, 1); // 过滤 args.filter(function (val) { arr = arr.filter(function (tar) { return val != tar; }); }); return arr;}
// 15. Where do I belong 数组排序并找出元素索引
function where(arr, num) { // 请把你的代码写在这里 arr.push(num); arr.sort(function (a, b) { return a > b; }); return arr.indexOf(num);}
// 16. Caesars Cipher 凯撒密码
function rot13(str) { // LBH QVQ VG! // 请把你的代码写在这里 // 分割句子 var arr = str.split(' '); var resultArr = []; arr.map(function (val) { var wordArr = val.split(''); // 每个单词转化为asII码 var numArr = wordArr.map(function (ch) { return ch.charCodeAt(0); }); // 加减13, 组装为一个单词 var correctWord = numArr.map(function (wo) { if (wo > 91 || wo < 65) { return String.fromCharCode(wo); } var index = wo >= 78 ? wo - 13 : wo + 13; return String.fromCharCode(index); }).join(''); resultArr.push(correctWord); }); return resultArr.join(' ');}
阅读全文
0 0
- FreeCodeCamp初级算法
- FreeCodeCamp初级js算法题小结
- freecodecamp 算法部分刷题笔记
- FreeCodeCamp javascript 算法题review part1
- FreeCodeCamp日志-基础算法编程完成
- Intermediate Algorithm Scripting FreeCodeCamp中级算法
- FreeCodeCamp高级算法Advance Algorithm Scripting
- freeCodeCamp中一些算法练习的实现
- FreeCodeCamp基础算法题答案解析
- 在freecodecamp练习的算法题心得记录
- freeCodeCamp学习:js之实现21点算法
- ACM初级算法
- 算法导论--初级1
- java初级算法
- 算法初级_1:字符
- 算法初级_4 :字符串
- 初级排序算法实现
- 初级排序算法总结
- 2017暑假集训第二天
- G
- 1023. Have Fun with Numbers (20)
- 运维——Linux防火墙iptables语法详解
- linux编程——I/O操作之文件基本读写
- FreeCodeCamp初级算法
- OpenStack学习笔记-1
- linux文件权限查看及修改-chmod
- mysql分页优化
- Spring Cloud 网卡选择
- 对于const常量定义在头文件的思考
- js继承详解-值类型、引用类型
- 剑指offer-二叉树的下一个节点
- Servlet