算法挑战

【算法挑战】解数独(含解析、源码) 以上就是本文所有内容了,希望能对你有所帮助,能够解决解数独问题。请我喝杯冰可乐也是极好的!已完结,欢迎持续关注。下次见~ 阅读详情

1.如果给定的字符串是回文,返回true,反之,返回false。

palindrome(回文)是指一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样。


function palindrome(str) {
  str = str.replace(/[^A-Za-z0-9]/g, '').toLowerCase().split('');
  var t = str.every(function(v,i){
    return v == str[str.length-i-1];
  },str);
  return t;
}

2.返回提供的句子中最长的单词的长度。

返回值应该是一个数字。

function findLongestWord(str) {
   var s=str.split(' ');
   var l=0;
   for (var i =0; i<s.length; i++) {
       if(s[i].length>l){
           l=s[i].length
       }
   }
return l;
}

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

3.返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。

function titleCase(str) {
  var newStr = str.split(" ");
  for(var i=0; i<newStr.length; i++){
    newStr[i] = newStr[i].slice(0, 1).toUpperCase() + newStr[i].slice(1).toLowerCase();
  }
  return newStr.join(" ");
}

titleCase("I'm a little tea pot");

4.   在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。

function largestOfFour(arr) {
// You can do this!
var newArr=[];
var max=0;
for (var i = 0; i <arr.length; i++) {
   for(var j=0;j<arr[i].length;j++){
       if (arr[i][j]>max) {
           max=arr[i][j];
       } 
   }
   newArr[i]=max;
   max=0;
}
return newArr;
}

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

5.检查一个字符串(str)是否以指定的字符串(target)结尾。

function confirmEnding(str, target) {
// "Never give up and good luck will find you."
// -- Falcor
if(target === str.substr(-target.length)){
    return true;
  }else{
    return false;
  }

}

confirmEnding("Bastian", "n");
6. 循环拼接一个指定的字符串  num 次,如果 num 是一个负数,则返回一个空字符串。
function repeat(str, num) {
// repeat after me
var newstr="";
if (num<=0) {
    return "";
} else {
    for (var i = 0; i < num; i++) {
        newstr+=new String(str);
    }
    return newstr;
}
}

repeat("abc", 3);
7.

 如果字符串的长度比给定的参数num长,则把多余的部分用...来表示。

切记,插入到字符串尾部的三个点号也会计入字符串的长度。

然而,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。

function truncate(str, num) {

  var newStr= "";

  if(str.length>num){

    if(num<=3){
      newStr =str.slice(0,num)+"..."; 
    }
    else{
      newStr =str.slice(0,num-3)+"...";
    }
    return newStr;

  }
  else{
        return str;
  }
}
truncate("A-tisket a-tasket A green and yellow basket", 11);


8.

  编写一个函数,把一个数组arr按照指定的数组大小size分割成若干个数组块。

例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];

8.1:

function chunk(arr,size){		
    var arr1=[];		
    for(var i=0;i<arr.length;i=i+size){		 
        var arr2=arr;          
        arr1.push(arr2.slice(i,i+size));		
    }		
    return arr1;	
}

chunk(["a", "b", "c", "d"], 2);

8.2:

function chunk(arr,size){         
    var chunk=[];         
    while(arr.length>0){             
        chunk.push(arr.splice(0,size));         
    };    
    return chunk;
}     

chunk(["a", "b", "c", "d"], 2);
9. 返回一个数组被截断 n 个元素后还剩余的元素,从索引0开始 截断 。
function slasher(arr, howMany) {
// it doesn't always pay to be first
return arr.slice(howMany);

}

slasher([1, 2, 3], 2);
10.

如果数组第一个字符串元素包含了第二个字符串元素的所有字符,则函数返回true。

举例,["hello", "Hello"]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。

["hello", "hey"]应该返回false,因为字符串"hello"并不包含字符"y"。

["Alien", "line"]应该返回true,因为"line"中所有字符都可以在"Alien"找到。

function mutation(arr){
    for (var i = 0 ; i < arr[1].length ; i++){
        if(arr[0].toUpperCase().indexOf(arr[1].charAt(i).toUpperCase()) == -1){
            return false;
        }
    }
    return true;
}
mutation(["hello", "hey"]);
11.

删除数组中的所有的假值。

在JavaScript中,假值有false、null、0、""、undefined 和NaN。

function bouncer(arr) {
// Don't show a false ID to this bouncer.
return arr.filter(d=>d);
}

bouncer([7, "ate", "", false, 9]);
12.  实现一个 destroyer 函数,第一个参数是初始数组, 后跟一个或多个参数。 从初始数组中删除与这些参数具有相同值的所有元素。
function destroyer() {
  var argu = arguments
  var arr1 = argu[0];
  var arr2 = arr1.filter(function(val) {
    var a = true;
    for (var i = 1; i < argu.length; i++) {
      if (val === argu[i]) {
        a = false;
      }
    }
    return a;
  })
  return arr2
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
13.

  先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。

举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。

同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2。

function where(arr, num) {
 // Find my place in this sorted array.
 //注意sort() 排序规则
 arr.sort(function(a,b){
   return a- b;
 });
 
 for(var i =0;i<arr.length;i++){
    
  if(arr[i]>num | arr[i] == num){
     
   return i;
  }
 }
 return arr.length;
}
14.

下面我们来介绍著名的凯撒密码Caesar cipher,又叫移位密码。

移位密码也就是密码中的字母会按照指定的数量来做移位。

一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔'O',以此类推。

写一个ROT13函数,实现输入加密字符串,输出解密字符串。

所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,就跳过它们。

function rot13(str) { // LBH QVQ VG!
 var  str1 = [];   
  for (var i = 0; i < str.length; i++ ) {  
    var num = str[i].charCodeAt();  
  if (num >= 65 && num <= 77)  
      num = num + 13;  
  else if (num > 77 && num < 91)  
      num = num - 13;  
   str1.push(String.fromCharCode(num));  
    }  
  return str1.join("");  
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

《挑战算法之路》目录页 《挑战算法之路》的源代码可以从GitHub下载,网址链接:点击打开链接 也可以从GoogleCode下载,网址链接:点击打开链接 挑战算法之路 Way to Algorithm 西安交通大学计算机系 林荣彬 目录页 第2版声明 ............................................................ 阅读详情

相关推荐

LeetCode算法挑战题解析大全

简介:《LeetCode算法挑战题解析大全》是编程高手编撰的详细文档,旨在全面解析LeetCode上的算法挑战题。LeetCode是一个集合了多领域编程题目的在线平台,对提升编程技能、面试准备和理解计算机科学有很高价值。文档包含了几乎所有LeetCode题目的详细解析,涵盖了数据结构、算法和设计模式,每个题目均提供了解题思路和最优解法。解决方案在LeetCode平台上经过测试,确保正确和高效。

weixin_42584758的博客 1128

6大算法的原理,基本原理以及适用于那些问题(详解)

此外,在递归算法中,可能会出现栈溢出的问题,特别是问题规模很大的情况下,应注意算法的时间和空间复杂度,以避免因内存不足而引起的程序异常。总的来说,动态规划算法是一种非常重要的算法,其最关键的部分是状态转移方程的设计,在设计状态转移方程时,需要联想问题的最优子结构性质及子问题的重叠性,以便求解最优解。动态规划是一种通过将原问题分解为子问题并多次求解子问题而解决复杂问题的算法,它依赖于子问题的结果,使用子问题来建立递推关系,并将子问题的结果组合成原问题的解。问题的解可以由子问题的解合并得到;

qq_67758645的博客 5445

算法共谋与竞争法挑战

本文综述了人工智能算法在定价中可能引发的共谋问题,梳理了信使模型、轴辐结构、可预测代理和数字眼四类算法共谋模式,并探讨现有竞争法在应对这些模式时的适用性与局限。文章指出,尽管目前实证证据有限,但算法同质性和自学习能力仍可能促进默示共谋。同时,价格歧视比共谋更可能发生。为应对潜在风险,学者建议引入合理原则、审计算法、增强隐私保护等治理机制。

www00的博客 1093

挑战算法3

1. 素数对猜想 让我们定义 dn为:dn= pn+1- pn,其中 pi是第i个素数。显然有 d1=1 且对于n>1有 dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。 输入格式:每个测试输入包含1个测试用例,给出正整数N。 输出格式:每个测试用例的输出占一行,不超...

weixin_30235225的博客 189

LeetCode算法挑战解答集锦

本文还有配套的精品资源,点击获取 简介:LeetCode是一个提供编程挑战题目的在线平台,旨在提高开发者解决实际问题的能力。本存储库“leetcode答案-LeetCode_Problems”汇集了LeetCode平台上各种问题的解决方案,包括数据结构和算法等多个领域的关键知识点。代码示例使用不同编程语言编写,如Python、Java、C++和JavaScript,并按照题...

weixin_36311421的博客 1395

回文判断的算法

这是一个回文判断的算法,很详细 欢迎大家下载

挑战算法——常见有难度的排序

package data; public class QuickSort { public static void main(String[] args) { int[] list =  new int []{5,1,4,3,10,6,4}; quickSort(list, 0, list.length-1); for (int i = 0; i System.out.prin

小木屋 2110

SAP FICO - 外币交易实战:汇率类型配置与货币换算率管理

月底关账前的外币评估就像财务人的"期末考",OB59配置就是你的备考方案。最低值原则(Lowest value principle)最保守。它会比较原始汇率与评估日汇率,取不利方向确认损失。适合风险厌恶型企业,我在制造业客户中应用最多。重估法(Revalue only)更反映市场现状。无论盈亏都按最新汇率调整,适合交易性金融资产处理。有个基金公司客户就靠这个方法及时反映了外汇波动收益。最小差异金额(Minimum difference)是防骚扰设置。

weixin_42524708的博客 355

算法挑战记录——Java

记录一下自己的算法挑战记录算法挑战记录旋转字符串挑战 算法挑战记录 最近感觉需要提高一下自己的算法水平,因此开始进行算法挑战训练专题,希望自己能够坚持下来。开始于2020-11-08. 旋转字符串挑战 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。 在数组上原地旋转,使用O(1)的额外空间 public class Solution { /** * @param str: An array of char * @param

midnightlight的博客 320

从零搭建《火影忍者》手游服务端:Linux环境部署与全流程实战

游戏服务器后端开发是构建大型多人在线体验的核心技术,其原理涉及高并发网络通信、分布式系统架构与数据一致性保障。在技术价值上,一套稳定高效的服务端不仅能支撑海量玩家实时交互,更是游戏业务逻辑、经济系统和安全防线的基石。典型的应用场景包括MMORPG、回合制卡牌、SLG等中重度手游。本文以《火影忍者》IP的横版卡牌回合制手游为例,聚焦于**手工服务端**的完整搭建过程,详细拆解从Linux系统初始化、MySQL与**Redis**缓存部署、核心服务编译、到代理后台联调的全链路实践,为开发者深入理解游戏后端架构提

weixin_30800615的博客 336

Windows 11任务管理器隐藏技能:一眼揪出内存泄漏的“元凶”(分页/非分页缓冲池详解)

本文详细介绍了Windows 11任务管理器中隐藏的分页缓冲池和非分页缓冲池功能,帮助用户精准定位内存泄漏问题。通过启用隐藏列、解读数据异常信号,并结合实战案例和高级工具推荐,为开发者和IT运维人员提供了高效的内存问题诊断与解决方案。

weixin_29284885的博客 623

初级脚本算法挑战

地址:https://www.w3cschool.cn/codecamp/list?pename=basic_algorithm_scripting_camp 翻转字符串算法: function reverseString(str) { let result = ""; for(let i = 0,j=str.length;i<j;i++) { ...

weixin_30586085的博客 140

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3805

高级脚本算法挑战

地址:https://www.w3cschool.cn/codecamp/list?pename=advanced_algorithm_scripting_camp 判断电话号码算法挑战:如果传入字符串是一个有效的美国电话号码,则返回 true.用户可以在表单中填入一个任意有效美国电话号码. 下面是一些有效号码的例子(还有下面测试时用到的一些变体写法):555-555-5555(555)555-...

weixin_30892037的博客 217

测试用例设计工具大盘点:总有一款适合你

本文旨在帮助测试工程师、开发人员及团队管理者快速了解主流测试用例设计工具的特点、适用场景和选择逻辑。覆盖工具类型包括传统文档工具、开源管理工具、商业集成平台及新兴AI工具,范围涵盖中小团队到大型企业的不同需求。本文从“测试用例设计的痛点”切入,用生活案例解释核心概念;接着按“工具类型”分类盘点主流工具(附优缺点对比表);再通过“小团队/中大型团队/敏捷团队”等真实场景教你选工具;最后展望AI等未来趋势,帮你“一次学透,终身受用”。

项目管理的博客 1589

Bert+CNN文本分类(含代码实现)

一、什么是CNN? CNN的特点: (1)特定特征位移不变性 (2)特征缩放不变性 2. CNN模型构造过程 2.1 Convolution(卷积) (1)获取关键特征(减少参数) (2)共享权重(再次减少参数) 2.2 Max Pooling(池化) 2.3 Flatten 向量转换为如图所示可以进入全连接层的向量模式 3. TextCNN 上图可理解为: 通过不同的size(如上图2、3、4等),上图红色代表 size=2,黄色...

Python,数据分析,机器学习,深度学习 1万+

数组查询算法挑战

挑战: 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,则函数返回true。 举例: [“hello”, “Hello”]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。 [“hello”, “hey”]应该返回false,因为字符串"hello"并不包含字符"y"。 [“Alien”, “line”]应该返回true,因为"line"中所有字...

幺四四零的博客 176

嵌入式SDIO 总线面试题及参考答案

SDIO 的 4 位总线模式是一种提高数据传输效率的工作模式。在传统的 1 位总线模式下,数据只能通过一根数据线(DAT0)进行传输,这限制了数据传输的带宽和速度。而在 4 位总线模式下,DAT0 - DAT3 这 4 根数据线同时用于数据传输,相当于在同一时间内可以传输 4 倍于 1 位模式的数据量,从而显著提高了数据传输的带宽和速度。要通过 CMD6 命令将 SDIO 总线从当前模式切换到 4 位总线模式,需要遵循以下步骤:第一步,主设备需要确保 SDIO 卡支持 4 位总线模式。

大模型大数据攻城狮的专栏 1717

W3C初级算法挑战之python实现

最近在学python,网上很难找到对应的算法题网站,专业算法网站大部分都是国外的,之前在w3cschool看到有三个级别的Javascript脚本算法挑战,尝试用python实现,代码量相对比较少,如果你有更好的解法,还请不吝赐教,初学python,希望和大家一起日有所长。 目录 1.翻转字符串算法挑战 2.阶乘算法挑战 3.回文算法挑战 4.寻找最长的单词算法挑战 5.设置首字...

Vincent_Lee1的博客 619

嵌入式代码审计中常见的漏洞(四)

经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 敏感信息硬编码 2 未初始化安全 3 越界访问 4 迭代器失效 5 迭代器尾部解引用

武天旭的博客 3315

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

算法挑战记录——Python

记录一下自己的算法挑战记录算法挑战记录——Python旋转字符串挑战尾随零落单的数统计数字移除9丑数 II 算法挑战记录——Python 这里是算法挑战记录的Python版本,flag总是要实现的,描述和思路大多和java版本统一,只是实现的语言为Python,如果想查看Java版本的实现,请看算法挑战记录——Java。于2020-11-10. 旋转字符串挑战 描述 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。 在数组上原地旋转,使用O(1)的额外

midnightlight的博客 305

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

重复操作算法挑战

重复操作算法挑战 循环拼接一个指定的字符串 num次,如果num是一个负数,则返回一个空字符串。 function repeat(str, num) { // repeat after me var str1=""; if(num&lt;0){ return ""; }else{ while(num&gt;0){ num--; str1=str1+str; ...

weixin_43809315的博客 280

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

中级脚本算法挑战

地址:https://www.w3cschool.cn/codecamp/list?pename=intermediate_algorithm_scripting_camp 区间求值算法挑战 :我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。最小的数字并非总在最前面。 function sumAll(arr) { var left = arr[0]&g...

weixin_30553065的博客 123

数组取值算法挑战

挑战: 删除数组(第一个参数)的元素,从左边开始,直到回调函数(第二个参数)return true就停止。 第二个参数,func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。 最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。 例如: drop([1,...

幺四四零的博客 240

2019移动广告反欺诈算法挑战赛baseline

前言: 分享这个baseline之前,首先先感谢一下我的好朋友油菜花一朵给予的一些帮助。然后呢介绍一下最近比赛中碰到的几个问题,以及解释。如果有可能的话,明天分享一个94.47左右的baseline吧,初赛之前设置为粉丝可见,初赛后在设置所有人可见吧。本来想分享47的baseline的,但是后来发现版本找不到了。就把自己的想法融合了一下,也不知道多少分。比赛名次不重要学到东西才重要。 第...

YYLin 1万+

聚类算法的未来趋势与挑战

1.背景介绍 聚类算法是一种常用的无监督学习方法,主要用于分析和处理大量数据中的模式和结构。随着数据规模的增加,聚类算法的应用范围也逐渐扩展到了人工智能、机器学习、计算机视觉等领域。然而,聚类算法也面临着一系列挑战,如高维度数据、不同类别之间的边界模糊等。因此,研究聚类算法的未来趋势和挑战至关重要。 在本文中,我们将从以下几个方面进行讨论: 背景介绍 核心概念与联系 核心算法原理和具体操作...

AI天才研究院 1157
下一篇: 一. CAS5.3X 单点登录-基础搭建
Jeffery Chan
博客等级 码龄10年 24粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值