美文网首页
判断是否回文(palindromes)。

判断是否回文(palindromes)。

作者: Hoistthecolors | 来源:发表于2017-07-07 17:08 被阅读16次

    代码

    function palindrome(str) {
        // 排除干扰项
        str = str.toLowerCase().replace(/[^a-z0-9]/g, '');
        // 设置边界条件
        if (str.length < 2) {
            return true;
        }
        // 检测首尾是否相等不相等,如果不等就直接返回 false
        if (str[0] !== str[str.length - 1]) {
            return false;
        }
    
        // 递归调用
        return palindrome(str.slice(1, -1));
    }
    

    解释

    • 整体思路是,递归地判断字符串的首尾是否相等
    • 如果相等,就排除掉首尾字符,继续判断首尾是否相等,注意在最后的 return 那里,传入参数的改变
    • 边界条件(跳出条件) 只需要设置为 str.length < 2,因为当 length 为 0 或者 1 的时候就表示这个字符是回文字符串
    • 最后的递归调用,可以用 else 包起来,但其实没有必要。可以这样去理解,一旦前面的判断生效了,就会直接跳出,也就不会执行到这里因为。既然能执行到这一步,就表示前面的 if 判断都没有生效。

    相关文章

      网友评论

          本文标题:判断是否回文(palindromes)。

          本文链接:https://www.haomeiwen.com/subject/fahrhxtx.html