采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如题,发现一个小bug:
如果传进去的字符串是 ((((aa)) 按理是不符合要求的,但是会返回true哟
哈哈。赞。
由于在这一小节,我解决的是Leetcode上的20号问题,但是,这个问题本身规定了,字符串中只可能有'(', ')', '[', ']', '{', '}'六种字符。所以相当于已经规定了这个算法输入的前置条件。在写这个算法的时候,我们是不需要对这个前置条件做验证。(我们写二分搜索法的时候是不要验证传来的待搜索数组是有序的,不然所有的二分搜索法都是O(n)的复杂度(验证有序性),或者O(nlogn)的复杂度(进行排序),而非O(logn)了)。
可以理解成,对这个前置条件的满足,应该由调用这个算法之前的步骤满足。换句话说,对于你给定的输出,应该有步骤将其变为“(((())”再传给这个算法。而单就我们规定的这个算法而言,“((((aa))”不是一个合法的输入:)
以上都是我的辩解:)当然在写算法的过程中,能够在不影响性能的基础上“顺便”加入防御性逻辑,是没有问题的:)
非常感谢!
哈哈,我后面也看了一下,发现我记错题目要求了,谢谢老师
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.3k 16
1.4k 17
1.3k 14
1.2k 14