freeCodeCamp的JS数据结构五道算法(一)

本文介绍了freeCodeCamp中的三个JavaScript算法题目:回文检查器、罗马数字转换器和凯撒密码。对于回文检查器,重点在于去除非字母数字字符并忽略大小写进行比较;罗马数字转换器涉及罗马数字的计数原理和转换规则;凯撒密码的解密方法是按固定数目移动字母位置。每个问题都包括了解题思路和JS实现代码。
摘要由CSDN通过智能技术生成

1. 回文检查器

如果传入的字符串是回文字符串,则返回 true。 否则返回 false

回文 palindrome,指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。

注意:检查回文时,你需要先去除所有非字母数字的字符(标点、空格和符号),并将所有字母都转换成大写或都转换成小写。

我们会传入具有不同格式的字符串,如 racecar、RaceCar 和 race CAR 等等。

我们也会传入一些包含特殊符号的字符串,例如 2A33a2、2A3 3a2、2_A33#A2。

1.1 想法

  1. 已知条件:传入的参数有字符串和数字两种,检查回文时要去除所有的标点符号。
  2. 判断方法:正数的字符串和倒着数的字符串相等,即为回文字符串
  3. 代码相关知识点:replace()

1.2 JS代码

function palindrome(str) {
   
 // 先把传入的字符串转换成小写
 //利用正则表达式将非字母数字下划线(\W),空格(\s),都(/g)替换掉
  let oriStr = str.toString().toLowerCase().replace(/[\W\s_]/g,'')
  //将新的字符串拆分 - 反转 - 拼接 成反转字符串
  let newStr = oriStr.split('').reverse().join('')
  // 比较两个字符串是否相等
  if (oriStr === newStr) return true;
    else {
    return false }
}
//测试
palindrome("eye")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值