判断是否为回文字符串

340 阅读1分钟

给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。

简单解法
   function isPalindrome(str) {
    if (typeof str !== 'string') {
        return false
    }
    // 将字符串转成成数组
    const arr = str.split('');
    // 创建反转数组
    const reverseArr = arr.reverse();
    // 将数组转成字符串
    const reverseStr = reverseArr.join('');
    //和翻转后的字符串比较
    return str === reverseStr;
}
利用数据结构
function isPalindrome(str = '') {
    if (typeof str !== 'string') {
        return false
    }
    // 假设是回文字符串
    let flag = true
    // 字符串转成数组
    let arr = str.split('')
    while (arr.length > 1) {
         // 模拟双端队列的操作
        //取出数组中的第一个
        let left = arr.shift();
        //取出数组中最后一个
        let right = arr.pop()
        // 如果第一个和最后一个不相等,就不是回文字符串
        if (left !== right) {
            flag = false
        }
    }
    return flag
}