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.");
        } 
  • 相关阅读:
    Mybatis学习随笔3
    Mybatis学习随笔2
    Mybatis学习随笔
    Java校招面试-什么是线程安全/不安全
    装饰器2
    装饰器
    默认传参的陷阱
    处理日志文件
    第二天
    用户登录
  • 原文地址:https://www.cnblogs.com/feile/p/5372611.html
Copyright © 2011-2022 走看看