回文算法

Posted gaohy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回文算法相关的知识,希望对你有一定的参考价值。

function cleanStr(str){
  // 过滤掉字符串中的所有空格、下划线
  var result = str.replace(/s+/g,‘‘).replace(/\_+/g,‘‘).match(/w/g).join(‘‘);
  // 过滤掉所有的标点符号, w是匹配一个单字字符(字母,数字和下划线)
  // W是匹配一个非单字字符, 当然包括标点符号了
  return result;
}

如果给定的字符串是回文,返回true,反之,返回false

palindrome(回文)是指一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样。

 

注意:您需要删除字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是不是回文。

函数参数的值可以为"racecar""RaceCar""race CAR"

function palindrome(str) {
// Good luck!
str = str.replace(/s+/g,‘‘).replace(/\_+/g,‘‘).match(/w/g).join(‘‘);
str = str.toLowerCase();
var  str1 = [];
var  str2 = [];

for(var i = 0;i<str.length;i++){
    str1.push(str[i]);
}
for(var j = 1;j<=str.length;j++){
    str2.push(str[str.length-j]);
}
for(var k = 0;k<=str1.length;k++){
    if(str1[k]!=str2[k]){
        return false;
    }
}
return true;
}



palindrome("1 eye for of 1 eye.");

 


以上是关于回文算法的主要内容,如果未能解决你的问题,请参考以下文章

《算法竞赛入门经典》3.3最长回文子串

131. 分割回文串

字符串处理算法回文判断的算法设计及C代码实现

算法双指针算法 ( 有效回文串 II )

算法快速排序

算法归并排序