题解 | #回文字符串#
回文字符串
http://www.nowcoder.com/practice/84424799af474ba093b06c29a1f12dfb
回文字符串:正读和反读都一样的字符串
第一种方法
- 建立一个正序列表
- 建立一个逆序列表(将数组进行反转)
- 将两者数组都进行join转化为字符串
- 判断两个字符串是否相等
const _isPalindrome = string => {
let oldArr = string.split('').join()
let newArr = string.split('').reverse().join()
if (oldArr == newArr) {
return true
}
return false
}
_isPalindrome('level')
第二种方法
- 取索引0为左指针
- 取索引长度减1为右指针
- 当左指针小于右指针时,进入循环
- 当进入循环时,如果左指针等于右指针,则左指针索引加1,右指针索引减1,否则返回false
- 左指针和右指针相等时,跳出循环
- 当循环结束时返回true
const _isPalindrome = string => {
let left=0
let right=string.length-1
while(left<right){
if(string[left]===string[right]){
left++
right--
}else{
return false
}
}
return true }