之前偶然看到了w3c上的编程挑战题,就像拿来试试手,先做的是初级脚本算法,总体不难,如果有更好的方法,希望能一起交流!
1、翻转字符串
先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。
function reverseString(str) { var str2 = ''; for(var i=str.length-1;i>=0;i--){ str2 += str[i]; } return str2; } function reverseString(str){ var strArray = str.split(''); strArray.reverse(); str = strArray.join(''); return str }
2、计算一个整数的阶乘
如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。
function factorialize(num) { var sum = 1; for(var i=num;i>0;i--){ sum *= i; } console.log(sum); return sum; } function factorialize(num) { if(num ==1){ return 1; }else{ return arguments.callee(num-1)*num; } }
3、回文算法
如果给定的字符串是回文,返回true,反之,返回false。
如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。
注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。
function palindrome(str) { var arr = []; str = str.toLowerCase(); for(var i=0;i<str.length;i++){ // 在小写字母的Unicode的范围内或者在数字的Unicode范围内 if((str.charCodeAt(i)<=122 && str.charCodeAt(i)>=97) || (str.charCodeAt(i)<=57 && str.charCodeAt(i)>=48)){ arr.push(str[i]); } } //只需要判断数组一半的次数就全部比较完了,不必再浪费时间了 for(var i=0;i<Math.ceil(arr.length/2);i++) { if(arr[i] !== arr[arr.length-i-1]){ return false; } } return true; } // 需要手动添加特殊字符 function palindrome(str){ var str1,str2; str = str.toLowerCase(); str = str.replace(/[/ |/~|/`|/!|/@|/#|/$|/%|/^|/&|/*|/(|/)|/-|/_|/+|/=|/||//|/[|/]|/{|/}|/;|/:|/"|/'|/,|/<|/.|/>|//|/?]/g,""); str1 = str.split(''); str1.reverse(); str2 = str1.join(''); if(str === str2){ return true }else{ return false; } }
4、寻找最长的单词算法
找到提供的句子中最长的单词,并计算它的长度。
函数的返回值应该是一个数字。
// 利用charCodeAt()方法判断是不是一个单词,并记录单词长度,最后获得最长的单词长度 function findLongestWord(str) { var num = 0, max = 0; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) !== 32) { num++; } else { // 注意:如果最后一个字母不是空格,不会比较最后一个单词的长度 max = num > max ? num : max; num = 0; } } // 比较最后一个单词的长度 max = num > max ? num : max; return max; } // 利用split()方法将字符串分成每个单词组成的数组,取得其中最长的长度 function findLongestWord(str){ var max = 0; var arr = str.split(' '); for(var i=0;i<arr.length;i++){ max = arr[i].length>max?arr[i].length:max; } return max; }
新闻热点
疑难解答
图片精选