JavaScript中字符和数组一些基本算法题

Posted caojiayan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中字符和数组一些基本算法题相关的知识,希望对你有一定的参考价值。

1、翻转字符串

例子(要求:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串)

function reverseString(str) {
  str=str.split(‘‘).reverse().join(‘‘);
  return str;
}
reverseString("hello");
//split方法把字符串转换成数组
//reverse方法翻转数组顺序
//join 方法来把数组转换成字符串

 

2、计算一个整数的阶乘

例子(如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。阶乘通常简写成 n! ; 例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
要求:factorialize(0) 应该返回 1.
function factorialize(num) {
if(num<1){ return 1; }else{ return num*factorialize(num-1); } } factorialize(5);

 

3、如果给定的字符串是回文,返回true,反之,返回false

如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。
注意需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。
函数参数的值可以为"racecar""RaceCar""race CAR"。

function palindrome(str) {
  astr=str.replace(/[^0-9A-Za-z]/g,‘‘).toLowerCase();
  bstr=astr.split("").reverse().join("");
  if(astr===bstr){
    return true;
  }else{
    return false;
  }
}
palindrome("eye");

//正则表达式还可以是:/8
astr=str.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\‘|\,|\<|\.|\>|\/|\?]/g,"").toLowerCase();

 

4、找到提供的句子中最长的单词,并计算它的长度。

注意:函数的返回值应该是一个数字。

function findLongestWord(str) {
//转化成数组
  var astr=str.split( " " ); 
//对数组中每个元素的字符串长度进行比较,按照字符串长度由大至小排列数组顺序。
  var bstr=astr.sort(function(a,b){
    return b.length-a.length;
  });
//取出数组中第一个元素(也就是最大长度的字符串)
  var lenMax= bstr[0].length;
//返回长度值
  return lenMax;
}

findLongestWord("The quick brown fox jumped over the lazy dog");

 









以上是关于JavaScript中字符和数组一些基本算法题的主要内容,如果未能解决你的问题,请参考以下文章

算法题前端解决方案——JavaScript代码实现

《剑指Offer:专项突破版》 - 数组部分 JavaScript 题解

华为笔试算法题1

前端算法入门:刷算法题常用的 JS 基础扫盲

算法题:两数之和——JavaScript及Java实现

冒泡排序算法的JavaScript实现