字符串回文【一天一个算法陶冶情操 | 算法练习生第一天】

字符串回文

js 复制代码
// 比如下面的单词: mom | racecar | kayak
// 给定一个单词 创建一个函数来检查它是否是回文, 如: isPalindrome('mom') -> true,  isPalindrome('crazy') -> false
// 第一种
const isPalindrome = (str) => {
  return [...str].reverse().join('') == str
  /**
   * 简析
   * ...str 做一个浅拷贝
   * reverse 翻转一下字符串 并不去影响原字符串
   * join 拼接下
   */
}

// 第2种
const isPalindrome2 = (str) => {
  return str === str.split('').reverse().join('')
  /**
   * 简析
   * split 把字符串分割成单个字符串的数组
   * reverse 不伤原始数据反转一下
   * join 拼接下
   */
}

// 第3种 比较野蛮
const isPalindrome3 = (str) => {
  for (let i = 0; i < str.length; i++) {
    if (str[i] !== str[str.length - 1 - i]) {
      return false
    }
  }
  return true
  /**
   * 通过一个for循环 根据字符串的索引前后作对比得出结果
   */
}
// 验证一下
isPalindrome('aaa')
console.log('isPalindrome', isPalindrome('alsd'))
isPalindrome('abccba')
console.log('isPalindrome', isPalindrome('abccba'))
isPalindrome2('abccba')
console.log('isPalindrome2', isPalindrome2('abccba'))
isPalindrome3('abccba')
console.log('isPalindrome3', isPalindrome3('abccba'))
相关推荐
Jay Kay7 分钟前
GVPO:Group Variance Policy Optimization
人工智能·算法·机器学习
Epiphany.55619 分钟前
蓝桥杯备赛题目-----爆破
算法·职场和发展·蓝桥杯
Ticnix21 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人24 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl28 分钟前
OpenClaw 深度技术解析
前端
崔庆才丨静觅31 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人39 分钟前
vue3使用jsx语法详解
前端·vue.js
YuTaoShao41 分钟前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法三)DP 空间优化
算法·leetcode·职场和发展
天蓝色的鱼鱼43 分钟前
shadcn/ui,给你一个真正可控的UI组件库
前端
茉莉玫瑰花茶1 小时前
C++ 17 详细特性解析(5)
开发语言·c++·算法