在JavaScript的世界里,那些细小的算法无处不在,今天为大家讲解一下字符串回文:
回文字符串:即字符串从前往后读和从后往前读字符顺序是一致的。
如何判断是回文字符串:
(1)利用数组的方法:先将字符串转为数组,将数组反转,将反转后的数组转为字符串
let palindRome = (str) => {
if (!str || (str && typeof str !== 'string')) {
return
}
return str === str.split('').reverse().reducer((total, cur) => total+cur)
}
(2)直接遍历,生成新的字符串
let palindRome = (str) => {
var len = str.length
var str1 = ""
for(var i=len-1; i>=0;i--){
str1+=str[i]
}
return str1 == str
}
palindRome("abcba");//true
palindRome("abcbac");//false
(3)利用第一个和最后一个对比直到对比完成,如果发现某俩个位置不同,那就不是
let palindRome = (str) => {
var len = str.length;
for(var i=0; i<len;i++){
if(str.charAt(i)!=str.charAt(len-1-i)){
console.log("不是")
}else{
console.log("是")
}
}
}
palindRome("abcba");//是
palindRome("abcbac");//不是
开发中比较少见,但是面试是常考的简单算法,理解原理最重要。