zoukankan      html  css  js  c++  java
  • 判断字符串是否是回文:运用栈&reverse()

    一、运用栈

        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.");
        } 
  • 相关阅读:
    C#里边的控件缩写大全(比较规范)
    jQuery的一些备忘
    有趣的史实~
    值类型 VS 引用类型~
    一道笔试题和UML思想 ~
    数据绑定以及Container.DataItem几种方式与用法分析
    用户控件与自定义控件的异同
    .NET资源站点汇总~
    C#中抽象类和接口的区别
    弹出窗口的一些东西(一),备忘~
  • 原文地址:https://www.cnblogs.com/feile/p/5372611.html
Copyright © 2011-2022 走看看