gpt4 book ai didi

javascript - 用拆分和反转的逻辑理解回文码

转载 作者:行者123 更新时间:2023-11-30 00:12:41 24 4
gpt4 key购买 nike

我正在尝试编写一个回文码,所以我使用了splitreverse 方法。我的以下逻辑是否正确?我可以直接使用 reverse 方法而不是先给 split 然后 reverse 吗?

如果我给 == 它打印回文,如果我给 === 它打印不回文。我是 JS 的初学者,我正在努力学习。

var actualWord = "madam"
var splittedWord = actualWord.split();

console.log("splittedWord---->" + splittedWord);

var reversedWord = splittedWord.reverse();

console.log("reversedWord---->" + reversedWord);
console.log("boolean" + reversedWord === actualWord);

if (reversedWord === actualWord) {
console.log("palindrome");
} else {
console.log("not palindrome")
}

最佳答案

你的逻辑有缺陷,因为 split() 没有参数来分割返回原始单词,这意味着 reverse() 没有效果,因为你在单个元素数组上工作。您还试图检查数组是否相等,但这是行不通的。

要执行您需要的操作,您需要按 '' 拆分以生成一个字符数组,然后您可以使用该字符数组 reverse()join() back together 反转单词的字符。然后你可以比较这些词来发现原来的是否是回文。试试这个:

var actualWord = "madam"
var reverseWord = actualWord.split('').reverse().join('');
console.log(actualWord, reverseWord);

if (actualWord === reverseWord) {
console.log(actualWord + " IS a palindrome");
} else {
console.log(actualWord + " IS NOT a palindrome")
}

Working example

更进一步,您可以将逻辑提取到它自己的函数中,并使字符串比较不区分大小写:

console.log('madam', isPalindrome('madam'));
console.log('madame', isPalindrome('madame'));
console.log('raceCAR', isPalindrome('raceCAR'));

function isPalindrome(word) {
var reverseWord = word.split('').reverse().join('');
return word.toLowerCase() === reverseWord.toLowerCase();
}

Example fiddle

关于javascript - 用拆分和反转的逻辑理解回文码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35784288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com