一、运用栈
function Stack() { this.dataStore = []; this.top = 0;//top的值等同于数组内的元素个数 this.push = push; this.pop = pop; } function push(element) { this.dataStore[this.top++] = element; } function pop() { return this.dataStore[--this.top]; } function isPalindrome(word) { var s = new Stack();//新建栈,以便将数组中的元素压入栈 for ( var i = 0; i < word.length; ++i) { s.push(word[i]); } var rword = ""; while (s.top > 0) { rword += s.pop();//将新栈中的元素通过pop()方法翻转 } if (word == rword) { return true; } else { return false; } } var word = "hello"; if (isPalindrome(word)) { alert(word + " is a palindrome."); } else { alert(word + " is not a palindrome."); } word = "racecar"; if (isPalindrome(word)) { alert(word + " is a palindrome."); } else { alert(word + " is not a palindrome."); }
二、间接使用数组的reverse()方法
function isPalindrome(word) { var a = word.split("");//将字符串转化为数组,split()中""必不可少 var b = a.join();//将数组转化为字符串 var a1 = a.reverse(); var b1 = a1.join(); if (b == b1) {//字符串可以运用"==",数组不可以 return true; } else { return false; } } var word = "hello"; if (isPalindrome(word)) { alert(word + " is a palindrome."); } else { alert(word + " is not a palindrome."); } word = "racecar"; if (isPalindrome(word)) { alert(word + " is a palindrome."); } else { alert(word + " is not a palindrome."); }
时间: 2024-10-13 01:51:25