码迷,mamicode.com
首页 > 其他好文 > 详细

判断字符串是否是回文:运用栈&reverse()

时间:2016-04-09 23:19:57      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

一、运用栈

    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.");
    } 

 

判断字符串是否是回文:运用栈&reverse()

标签:

原文地址:http://www.cnblogs.com/feile/p/5372611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!