全网整合营销服务商

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

免费咨询热线: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过程详解  # 不平衡  # 为空  # 则说  # 都是  # 相关内容  # 有很多  # 遍历  # 将其  # 感兴趣  # 我们可以  # 给大家  # 弹出  # 介绍一下  # 更多关于  # 所述  # 程序设计  # 则将  # 不对称  # 比对 


相关文章: 建站之星安装步骤有哪些常见问题?  高防服务器如何保障网站安全无虞?  韩国服务器如何优化跨境访问实现高效连接?  深圳网站制作的公司有哪些,dido官方网站?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站主机选虚拟主机还是云服务器更好?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何在IIS中新建站点并配置端口与IP地址?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何用虚拟主机快速搭建网站?详细步骤解析  如何访问已购建站主机并解决登录问题?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  小建面朝正北,A点实际方位是否存在偏差?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  建站之星安装提示数据库无法连接如何解决?  如何确保西部建站助手FTP传输的安全性?  如何在橙子建站中快速调整背景颜色?  动图在线制作网站有哪些,滑动动图图集怎么做?  宝塔新建站点为何无法访问?如何排查?  公司网站的制作公司,企业网站制作基本流程有哪些?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何获取上海专业网站定制建站电话?  常州自助建站费用包含哪些项目?  如何在阿里云香港服务器快速搭建网站?  如何选购建站域名与空间?自助平台全解析  常州企业建站如何选择最佳模板?  建站之星伪静态规则如何设置?  Swift中switch语句区间和元组模式匹配  完全自定义免费建站平台:主题模板在线生成一站式服务  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  建站之星代理商如何保障技术支持与售后服务?  高端建站三要素:定制模板、企业官网与响应式设计优化  如何在阿里云域名上完成建站全流程?  详解jQuery停止动画——stop()方法的使用  西安大型网站制作公司,西安招聘网站最好的是哪个?  高防服务器租用指南:配置选择与快速部署攻略  制作证书网站有哪些,全国城建培训中心证书查询官网?  名字制作网站免费,所有小说网站的名字?  如何用搬瓦工VPS快速搭建个人网站?  如何在Windows环境下新建FTP站点并设置权限?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何在景安服务器上快速搭建个人网站?  全景视频制作网站有哪些,全景图怎么做成网页?  内网网站制作软件,内网的网站如何发布到外网?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些? 

您的项目需求

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