javascript算法集:判断文本是否为回文

2018-04-1409:53:49WEB前端开发Comments2,276 views字数 794阅读模式

定义:如果将一个文本翻转过来,能和原文本完全相等,那么就可以称之为“回文”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/3281.html

判断文本是否为回文 方法一(字符串、数组内置方法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
* 判断文字是否为回文
* @param {string|number} val 需要判断的文字
* @return {boolean} bool 是否为回文
*/
function isPalindrome1(val){
// 允许输入字符串和数字和布尔值
if (typeof val !== 'string') val = val.toString();
let newVal = val.split('').reverse().join('');
return val === newVal;
}
isPalindrome1(121) // true
isPalindrome1('yuzuy') // true

// PS:方法简单,但效率不高,会产生一个新的变量文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/3281.html

判断文本是否为回文 方法二(循环)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
* 判断文字是否为回文
* @param {string|number} val 需要判断的文字
* @return {boolean} bool 是否为回文
*/
function isPalindrome2(val){
val = val + ''; // 非字符串转化为字符串
// 这里为什么 i <= j 呢?如果中间只有一个字符,是不需要比较的,它肯定等于它本身!!!
for(let i = 0, j = val.length - 1; i < j; i++, j--){
if(val.charAt(i) !== val.charAt(j)){
return false;
}
}
return true;
}
isPalindrome2(121) // true
isPalindrome2('yuzuy') // true

PS:网上还有其他解法,大多为以上两种的变形。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/3281.html

测试:reverseVal(‘abc’) // ‘cba’文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/3281.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/3281.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定