全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript数据结构中栈的应用之符号平衡问题

本文实例讲述了javascript数据结构中栈的应用之符号平衡问题。分享给大家供大家参考,具体如下:

由于栈先进后出的结构,我们可以将其作为有用的工具,下面就介绍一下栈的应用。

首先是符号的平衡问题。有一串字符串,我们需要判断其中固定的字符是否成对出现,比如<> {} [] () 等。当然实现的方法有很多,但是采用栈的实现会相对更加简单。

实现上述算法的JavaScript代码如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<script type="text/javascript">
  function isbalance(str){
    var str=str.toString(),
      len=str.length,
      myArray=new Array();
    for(var i=0;i<len;i++){
      if(str[i]=='['||str[i]=='{'||str[i]=='('){
        myArray.push(str[i]);
      }
      if(str[i]==']'||str[i]=='}'||str[i]==')'){
        if(myArray.length==0){
          document.write("the string 不平衡");
          return false;
        }
        var popValue=myArray.pop();
        switch(str[i]){
          case ']':{
            if('['!=popValue){
              document.write('] 不平衡');
            }
            break;
          }
          case '}':{
            if('{'!=popValue){
              document.write('} 不平衡');
            }
            break;
          }
          case ')':{
            if('('!=popValue){
              document.write(') 不平衡');
            }
            break;
          }
          default:
            break;
        }
      }
    }
  }
  isbalance('{[]}');//true
  isbalance('{[[]]}');//true
  isbalance('(()[])');//true
  isbalance('{[]]');//false
</script>
  </body>
</html>

算法的思想是:假设在读入一串字符串以后,如果遇到对称符号的左边部分,则将其压入栈中,当遇到对称符号的右边部分,则弹出栈中的一个对象,实现比对,如果是对称的,则说明当前的符号是平衡的,如果不对称,则说明当前字符串是不平衡的,当字符串读完以后,如果所有的符号都是平衡的,栈中此时应该就是为空,通过判断栈中是否为空,说明字符串是否是符号平衡的

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。


# javascript  # 数据结构  #   # 应用  # 符号平衡  # JS中的算法与数据结构之栈(Stack)实例详解  # JavaScript数据结构之栈实例用法  # JS中数据结构之栈  # 利用JavaScript实现栈的数据结构示例代码  # JavaScript数据结构学习之数组、栈与队列  # JavaScript数据结构中栈的应用之表达式求值问题详解  # JavaScript实现栈结构Stack过程详解  # 不平衡  # 为空  # 则说  # 都是  # 相关内容  # 有很多  # 遍历  # 将其  # 感兴趣  # 我们可以  # 给大家  # 弹出  # 介绍一下  # 更多关于  # 所述  # 程序设计  # 则将  # 不对称  # 比对 


相关文章: 购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  再谈Python中的字符串与字符编码(推荐)  如何选择适合PHP云建站的开源框架?  建站主机默认首页配置指南:核心功能与访问路径优化  C++时间戳转换成日期时间的步骤和示例代码  建站主机助手选型指南:2025年热门推荐与高效部署技巧  建站之星伪静态规则如何设置?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  公司门户网站制作流程,华为官网怎么做?  盐城做公司网站,江苏电子版退休证办理流程?  如何在Ubuntu系统下快速搭建WordPress个人网站?  建站主机CVM配置优化、SEO策略与性能提升指南  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何在云指建站中生成FTP站点?  如何在阿里云域名上完成建站全流程?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何快速辨别茅台真假?关键步骤解析  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  活动邀请函制作网站有哪些,活动邀请函文案?  定制建站如何定义?其核心优势是什么?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  股票网站制作软件,网上股票怎么开户?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  高防服务器租用首荐平台,企业级优惠套餐快速部署  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  如何通过WDCP绑定主域名及创建子域名站点?  建站主机如何选?性能与价格怎样平衡?  如何通过.red域名打造高辨识度品牌网站?  Python多线程使用规范_线程安全解析【教程】  常州企业建站如何选择最佳模板?  平台云上自主建站:模板化设计与智能工具打造高效网站  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何在云服务器上快速搭建个人网站?  ,网页ppt怎么弄成自己的ppt?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  高端建站如何打造兼具美学与转化的品牌官网?  图册素材网站设计制作软件,图册的导出方式有几种?  如何高效生成建站之星成品网站源码?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  孙琪峥织梦建站教程如何优化数据库安全?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何快速登录WAP自助建站平台?  建站之星图片链接生成指南:自助建站与智能设计教程  javascript中对象的定义、使用以及对象和原型链操作小结  韩国服务器如何优化跨境访问实现高效连接?  建站之星在线版空间:自助建站+智能模板一键生成方案  济南网站建设制作公司,室内设计网站一般都有哪些功能?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。