回文是指这样一种现象:一个单词、短语或数字,从前往后写和从后往前写都是一样的。 比如,单词“dad”、“racecar”就是回文;如果忽略空格和标点符号,下面这个句子也是回 文,“A man, a plan, a canal: Panama”;数字 1001 也是回文。
在之前的文章中是使用栈(Stack)这一数据结构,其实回文字符串字号的判断方法是使用双端队列(Deque)来实现。
function isPalindrome(word) { if (typeof word !== "string") { throw TypeError(`参数不是string类型`); } let tmp = new Deque(); for (let element of word) { tmp.addBack(element); } while (tmp.length() > 1) { if (tmp.removeFront() !== tmp.removeBack()) { return false; } } return true; } console.log(isPalindrome("racecar")) // true console.log(isPalindrome("hello")) // false 参考资料数据结构与算法JavaScript描述
学习JavaScript数据结构与算法 第3版