• 判断字符串是否是回文:运用栈&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.");
        } 
  • 相关阅读:
    Cleaning Up Children Asynchronously
    advacing lnux program 4.1.5 Thread Attributes[copy]
    advacing lnux program Threads Return Value[copy]
    批处理,所有子文件夹下面的所有文件
    .NET连接sybase乱码问题
    Asp.net forms认证遇到的一个奇怪的问题和测试过程
    WCF错误
    wcf超时错误
    gridControl控件显示交叉表
    K3 12.1修改报表Bug
  • 原文地址:https://www.cnblogs.com/feile/p/5372611.html
Copyright © 2020-2023  润新知