使用javascript匹配回文中的个别字符?

时间:2017-10-12 22:42:27

标签: javascript palindrome

我可以匹配以查看一串数字是否是使用.reverse()。join在字符串上的回文,并得到一个真或假的像:

var isPalindrome = function (string) {
  if (string == string.split('').reverse().join('')) {
    alert(string + ' is palindrome.');
  }
  else {
    alert(string + ' is not palindrome.');
  }
}

但是,我需要弄清楚有多少数字符合回文模式,而不是整个单词。例如,如果用户键入'112231',则返回值为2,'1234321'为3,'4010220804'为4,依此类推。

1 个答案:

答案 0 :(得分:2)

我接受了反向和正常的字符串并迭代了它们的索引,因为它们应该是相同的长度。我刚创建了一个计数器,如果它不是一个完整的回文,则会返回一个警报。

 var isPalindrome = function(string) {
  let letters = string.split('');
  let reversed = Array.from(letters).reverse();
  if (string == reversed.join('')) {
    alert(string + ' is palindrome.');
    return true;
  } else {
    let matches = 0;
    for (let letter_index in letters) {
        if (letters[letter_index] === reversed[letter_index]) {
          matches++;
      }  
    }
    alert(matches);
  }
}



 var isPalindrome = function(string) {
  let letters = string.split('');
  let reversed = Array.from(letters).reverse();
  if (string == reversed.join('')) {
    alert(string + ' is palindrome.');
    return true;
  } else {
    let matches = 0;
    for (let letter_index in letters) {
        if (letters[letter_index] === reversed[letter_index]) {
          matches++;
      }  
    }
    alert(matches);
    return matches;
  }
}

isPalindrome('tacocat');
isPalindrome('tacocatat');
isPalindrome('banana');
isPalindrome('anana');