ARTS Week 8
Algorithm 本周的算法题为 20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = "()" 输出:true 示例 2: 输入:s = "(]" 输出:false 实现代码如下: var isValid = function(str) { if (str.length % 2 !== 0) { return false } const map = { '(': ')', '[': ']', '{': '}' } let stack = [] for (let i = 0; i < str.length; i++) { const s = str[i] if (s == '(' || s == '[' || s == '{') { stack.push(s) } else { if (s !== map[stack.pop()]) { return false } } } return stack.length == 0 }; 解题思路: 总的来说,就是通过栈后进先出(LIFO ,Last In First Out)的机制实现。 如果字符串长度不是偶数,则说明不是成对的,可直接返回false 通过Map,创建一个对象,用来处理左右括号映射关系 创建一个数组stack,用来实现栈的操作 如果是左括号,则入栈stack.push(s) 如果是右括号,stack.pop() 栈顶的左括号出栈,获取它映射的右括号,进行比较 如果不相等,直接返回false。 当stack长度为空,说明入栈的左括号都找到了对应的右括号,返回true,否则为false。 Review Argentina’s president warns of economic ‘shock treatment’ 阿根廷有了一位新总统。他叫哈维尔·米莱。他出人意料地赢得了11月的选举。米莱承诺要扭转阿根廷糟糕的经济。他特别表示,他将降低目前在140%左右的通胀率。他还希望大幅削减公共债务。在过去的几十年里,阿根廷借了很多钱。米莱开始想偿还这笔钱。在他作为总统的第一次演讲中,他说经济需要“休克疗法”来恢复。他表示,前几届政府花费太多,“没有钱了”。他警告阿根廷人,未来几年的生活将会很艰难。他说,人们将不得不生活在“紧缩”中以帮助经济。 哈维尔·米莱与阿根廷以前见过的任何政治家都不同。他是一个极右翼政治家。许多人说他很像美国前总统川普和巴西前总统博索纳罗。在米莱竞选期间,人们经常看到他拿着电锯。他想让人们知道,他将在经济方面大幅削减开支。他称自己的选举胜利是阿根廷历史的转折点,就像1989年柏林墙的倒塌一样。他承诺限制堕胎权并放宽枪支法。他也因为不相信气候变化而惹恼了环保人士。他说:“我们知道,短期内形势将会恶化,但之后我们将看到我们努力的成果。” ...