查找字符串中最长的回文并返回 Javascript 中最长的单个单词
Finding the longest Palindrome in a string and returning the longest single word in Javascript
我正在写一个方法来找到一个单词句子中最长的回文。到目前为止,我已经使用 for 循环来执行此操作,但它没有返回正确的词。
function findLongestPalindrome(sentence) {
let wordArray = sentence.split(" ");
let longestWord = 0;
let word = " ";
for(let i = 0; i < wordArray.length; i++) {
if(longestWord < wordArray[i].length) {
longestWord = wordArray[i].length;
word = wordArray[i]
}
}
return word;
}
谁能告诉我哪里出错了?
您缺少检查字符串是否为回文的函数。请参考下面的代码,您可以使用new Set()
进一步优化并重构代码。
function findLongestPalindrome(sentence) {
let wordArray = sentence.match(/\b\w+\b/g),
longestWord = 0,
word = " ";
for (let i = 0; i < wordArray.length; i++) {
if (longestWord < wordArray[i].length && isPalindrome(wordArray[i])) {
longestWord = wordArray[i].length;
word = wordArray[i]
}
}
return word;
}
function isPalindrome(str) {
return str.split('').reverse().join('') === str;
}
console.log(
findLongestPalindrome('This is an interesting sentence: kayak, november, anna')
)
我正在写一个方法来找到一个单词句子中最长的回文。到目前为止,我已经使用 for 循环来执行此操作,但它没有返回正确的词。
function findLongestPalindrome(sentence) {
let wordArray = sentence.split(" ");
let longestWord = 0;
let word = " ";
for(let i = 0; i < wordArray.length; i++) {
if(longestWord < wordArray[i].length) {
longestWord = wordArray[i].length;
word = wordArray[i]
}
}
return word;
}
谁能告诉我哪里出错了?
您缺少检查字符串是否为回文的函数。请参考下面的代码,您可以使用new Set()
进一步优化并重构代码。
function findLongestPalindrome(sentence) {
let wordArray = sentence.match(/\b\w+\b/g),
longestWord = 0,
word = " ";
for (let i = 0; i < wordArray.length; i++) {
if (longestWord < wordArray[i].length && isPalindrome(wordArray[i])) {
longestWord = wordArray[i].length;
word = wordArray[i]
}
}
return word;
}
function isPalindrome(str) {
return str.split('').reverse().join('') === str;
}
console.log(
findLongestPalindrome('This is an interesting sentence: kayak, november, anna')
)