当前位置 : 主页 > 编程语言 > 其它开发 >

JS回文检查(FreeCodeCamp项目)

来源:互联网 收集:自由互联 发布时间:2022-05-30
JS回文检查(FreeCodeCamp项目)的思路和最终代码 需求 如果传入的字符串是回文字符串,则返回 true 。 否则返回 false 回文 palindrome ,指在忽略标点符号、大小写和空格的前提下,正着读
JS回文检查(FreeCodeCamp项目)的思路和最终代码 需求

如果传入的字符串是回文字符串,则返回 true。 否则返回 false

回文 palindrome,指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。

注意:检查回文时,你需要先去除所有非字母数字的字符(标点、空格和符号),并将所有字母都转换成大写或都转换成小写。

测试结果要求

palindrome("eye") 应返回一个布尔值。

 

palindrome("eye") 应返回 true

 

palindrome("_eye") 应返回 true

 

palindrome("race car") 应返回 true

 

palindrome("not a palindrome") 应返回 false

 

palindrome("A man, a plan, a canal. Panama") 应该返回 true

 

palindrome("never odd or even") 应返回 true

 

palindrome("nope") 应该返回 false

 

palindrome("almostomla") 应返回 false

 

palindrome("My age is 0, 0 si ega ym.") 应返回 true

 

palindrome("1 eye for of 1 eye.") 应返回 false

 

palindrome("0_0 (: /-\ :) 0-0") 应返回 true

 

palindrome("five|\_/|four") 应返回 false

 

已给框架
function palindrome(str) {
  return true;
}

palindrome("eye");
需求分析(解题思路)

首先判断字符串是否为回文(正着读反着读都一样)

var newStr = "";// 创建一个空的String型以存放倒过来的字符串

// 将字符(str) 倒着插入 新建的空的String型(newStr)
// 1、在for循环里var一个i变量,其初始值为 字符串长度-1(为了让i等于字符串的最后一个字符的索引值),让i不断减小,直至减小到0
// 2、将数组里的第i个字符依次添加到newStr里
for(var i = str.length - 1;i >= 0;i--) {
    newStr += str[i];
}

// 返回 判断两个字符串是否相等 的布尔值
return str == newStr;

接着,满足 删除原字符串里除了字母数字以外的东西 的需求

注意:这个需要写在 判断回文 前面 

// 去除字母数字以外的字符
// 1、判断字符串中是否包含0-9,a-z,A-Z以外的符号
// 2、如果有,将它们删除(翻译:将它们改成“”)
if(str.match(/[^0-9a-zA-Z]/)) {
    while (str.match(/[^0-9a-zA-Z]/)) {
        str = str.replace(/[^0-9a-zA-Z]/,"");
    }
}
// 把所有空格删除
// 思路和 去除字母数字以外的字符 一样
if(str.match(" ")) {
    while (str.match(" ")) {
        str = str.replace(" ","");
    }
}

 最后,满足 将所有字母都转换成大写或都转换成小写 的需求

注意:这个也需要写在 判断回文 前面

// 把所有字母转成小写
str = str.toLowerCase();
最终代码
function palindrome(str) {
    // 去除字母数字以外的字符
    if(str.match(/[^0-9a-zA-Z]/)) {
        while (str.match(/[^0-9a-zA-Z]/)) {
            str = str.replace(/[^0-9a-zA-Z]/,"");
        }
    }

    // 把所有字母转成小写
    str = str.toLowerCase();

    // 把所有空格删除
    if(str.match(" ")) {
        while (str.match(" ")) {
            str = str.replace(" ","");
        }
    }

    // 回文检查
    var newStr = "";
    for(var i = str.length - 1;i >= 0;i--) {
        newStr += str[i];
    }
    return str == newStr;
}

palindrome("eye");

 

上一篇:Nginx的常用配置
下一篇:没有了
网友评论