![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
OZCNO
越努力越幸运
展开
-
js检查表达式括号匹配
栈的特点:先进后出(FILO)。利用栈的这一特点,可以解决像它具有一样特征的问题,比如,大数相加、编辑器的undo序列的保存、浏览器访问历史的记录保存、递归函数中调用的地址和参数值的保存等。 本文章主要要讲的是如何利用栈的特点,来检查表达式的括号是否匹配。 //括号匹配 let isLegal=function(str){ const left=0; const right=1; ...原创 2019-03-16 16:54:49 · 1610 阅读 · 0 评论 -
js实现大数加和
大数就是超过整数最大上限的数,大数会被采用科学记数法的方式保存下来,这样就会导致最后的结果不准确。 通过观察,我们可以总结出我们在做加法的时候的规律。 即最小位数先相加,相加的结果个位数保留,有进位的参与到下一位的加法中。由此可看出,虽然大位的数虽然先读取到,但是是最后计算的,由此,我们可以用栈的实现方式来实现。 像上一篇文章一样,栈我们使用数组来表示 我们用三个栈分别存储和的个位数以及两个加数 ...原创 2019-03-16 17:56:56 · 647 阅读 · 0 评论 -
js解决汉诺塔问题
经典的汉诺塔问题,将x塔座上n个从大到小的盘子移动到z塔座上,要求大盘子不能放在小盘子上面,可以借助y塔座,问最多需要多少次。 分析:当n=1时,可以直接将盘子从x塔座移动到z塔座; 当n>1时,要想把第n个盘子从x塔座移动到z塔座,则需要借助y塔座,即先将1~n-1盘子从x塔座移动到y塔座。然后再把第n个盘子从x塔座移动到z塔座,最后再把y塔座上1到n-1的盘子移动到z塔座上,就完成了。 ...原创 2019-03-16 21:46:51 · 2424 阅读 · 0 评论