我可以匹配以查看一串数字是否是使用.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,依此类推。
答案 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');