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

字符串回文

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'))
相关推荐
懒惰才能让科技进步17 分钟前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara31 分钟前
函数对象笔记
c++·算法
栈老师不回家44 分钟前
Vue 计算属性和监听器
前端·javascript·vue.js
前端啊龙1 小时前
用vue3封装丶高仿element-plus里面的日期联级选择器,日期选择器
前端·javascript·vue.js
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
泉崎1 小时前
11.7比赛总结
数据结构·算法
你好helloworld1 小时前
滑动窗口最大值
数据结构·算法·leetcode
小远yyds1 小时前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
AI街潜水的八角2 小时前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习
白榆maple2 小时前
(蓝桥杯C/C++)——基础算法(下)
算法