用 javascript 匹配回文中的单个字符?
matching individual characters in a palindrome with javascript?
我可以在字符串上使用 .reverse().join 来匹配以查看一串数字是否是回文,并得到真或假,例如:
var isPalindrome = function (string) {
if (string == string.split('').reverse().join('')) {
alert(string + ' is palindrome.');
}
else {
alert(string + ' is not palindrome.');
}
}
但是,我需要计算出有多少数字匹配回文模式,而不是整个单词。例如,如果用户输入“112231”,return 将为 2,“1234321”为 3,“4010220804”为 4,依此类推。
我采用了反转字符串和正常字符串并遍历了它们的索引,因为它们的长度应该相同。我刚刚创建了一个计数器,如果它不是一个完整的回文就返回一个警报。
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');
我可以在字符串上使用 .reverse().join 来匹配以查看一串数字是否是回文,并得到真或假,例如:
var isPalindrome = function (string) {
if (string == string.split('').reverse().join('')) {
alert(string + ' is palindrome.');
}
else {
alert(string + ' is not palindrome.');
}
}
但是,我需要计算出有多少数字匹配回文模式,而不是整个单词。例如,如果用户输入“112231”,return 将为 2,“1234321”为 3,“4010220804”为 4,依此类推。
我采用了反转字符串和正常字符串并遍历了它们的索引,因为它们的长度应该相同。我刚刚创建了一个计数器,如果它不是一个完整的回文就返回一个警报。
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');