Js基础算法题

1、字符串翻转

 1 要求:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串
 2
 3 function reverseString(str) {
 4   str=str.split(‘‘).reverse().join(‘‘);
 5   return str;
 6 }
 7 reverseString("hello");
 8 //split方法把字符串转换成数组
 9 //reverse方法翻转数组顺序
10 //join 方法来把数组转换成字符串

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

 1 如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是回文。
 2 需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。
 3
 4 function test(str) {
 5   astr=str.replace(/[^0-9A-Za-z]/g,‘‘).toLowerCase();
 6   bstr=astr.split("").reverse().join("");
 7   if(astr===bstr){
 8     return true;
 9   }else{
10     return false;
11   }
12 }
13 test("eye");

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

 1 function words(str) {
 2 //转化成数组
 3   var astr=str.split( " " );
 4 //对数组中每个元素的字符串长度进行比较,按照字符串长度由大至小排列数组顺序。
 5   var bstr=astr.sort(function(a,b){
 6     return b.length-a.length;
 7   });
 8 //取出数组中第一个元素(也就是最大长度的字符串)
 9   var lenMax= bstr[0].length;
10 //返回长度值
11   return lenMax;
12 }
13
14 words("I am a little gril and vary lovely");
15
16 //结果:6

4、确保字符串的每个单词首字母都大写,其余部分小写

function like(str) {
  var astr=str.toLowerCase().split(‘ ‘);
  for(var i=0 ; i<astr.length; i++){
    astr[i]=astr[i][0].toUpperCase()+astr[i].substring(1,astr[i].length);
  }
  var string=astr.join(‘ ‘);
  return string;
}
like(‘I have two beautifal eyes‘);

//结果:I Have Two Beautifal Eyes

5、大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们拼成一个新数组

function largestOfFour(arr) {
  var newArr=[];
  for(i=0;i<arr.length;i++){
    arr[i].sort(function(a,b){
      return b-a;
    });

    newArr.push(arr[i][0]);
  }
    return newArr;

}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

// 结果 [5, 27, 39, 1001]

原文地址:https://www.cnblogs.com/jinga/p/9378868.html

时间: 2024-10-05 23:36:57

Js基础算法题的相关文章

FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)

题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文.函数参数的值可以为"racecar","RaceCar"和"race CAR". 算法: function palindrome(str) { var str_obj = s

FCC JS基础算法题(0):Reverse a String(翻转字符串)

题目描述: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串.你的结果必须得是一个字符串. 算法: function reverseString(str) { // 请把你的代码写在这里 str = str.split("").reverse().join(""); return str; } reverseString("hello"); 原文地址:https://www.cnblogs.com/hume

FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)

题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function factorialize(num) { // 请把你的代码写在这里 var result = 1; for(var i=2;i <= num;i++){ result *= i; } return result; } factorialize(1); 原文地址:https://www.cnblogs.co

FCC JS基础算法题(8):Slasher Flick(截断数组)

题目描述: 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始. 这个题目有两个方法,都比较简单,用slice方法: function slasher(arr, howMany) { // 请把你的代码写在这里 var newArr = []; newArr = arr.slice(howMany); return newArr; } slasher([1, 2, 3], 2); 然后是用splice方法: function slasher(arr, howMany) { // 请把你的

FCC JS基础算法题(7):Chunky Monkey(分割数组)

题目描述: 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]]; 没什么好说的,自己做出的方法与网络上的差别不大,以下是代码: function chunk(arr, size) { // 请把你的代码写在这里 var newarr = []; for (var i = 0; i < arr.length; i+=size){ new

fcc 基础算法题

fcc 基础算法题 fcc Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. function reverseString(str) { var arr =str.split(""); //string.split("");以""分割字符串 并返回新的数组 不改变原字符串 arr.reverse(); //反转数组 返回数组的引用 改变原数组 arr = ar

基础算法题-----百元买百鸡

基础算法题-–百元买百鸡 题目:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 首先来分析一下: 设公鸡为x只,母鸡为y只,小鸡为z只,可的 x+y+z=100 5x+3y+z/3=100 由于每种鸡最少1只,所以公鸡最多能有(100 - 3 - 1) / 5只,母鸡最多能有(100 - 5 - 1) / 3只 至此我们便可以编码实现了 // 买公鸡最大数量 int gongJI = (10

java基础算法题

为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想. [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子数量的规律为数列:1,1,2,3,5,8,13.....其实就是斐波那契数列  使用递归就可以实现 1 /** 2 * 兔子问题 3 * 2016/5/9 4 * 斐波那契数列求值 5 *题目:古典问题:有一对兔子,

js 基础算法练习题

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>js简单计算题</title> </head> <body> <h1>1.计算从1加到100的和</h1> <script> var sum = 0; for(var i=1;i<=100;i++){ sum = sum+ i; }