栈
文章平均质量分 76
算法#栈
李牧九丶
奉己为神
展开
-
从零学算法227
你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval()。.给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。表达式中的所有整数都是非负整数,且在范围 [0, 2。s 由整数和算符 (‘+’, ‘-’, '', ‘/’) 组成,中间由一些空格隔开。输入:s = " 3+5 / 2 "输入:s = " 3/2 "整数除法仅保留整数部分。输入:s = "3+2。原创 2024-03-19 11:38:34 · 953 阅读 · 0 评论 -
从零学算法946
给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false。输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]解释:1 不能在 2 之前弹出。原创 2023-10-11 13:53:57 · 154 阅读 · 0 评论 -
从零学算法394
编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。输入:s = “2[abc]3[cd]ef”输入:s = “abc3[cd]xyz”输出:“abcabccdcdcdef”输入:s = “3[a]2[bc]”输入:s = “3[a2[c]]”原创 2023-07-14 17:48:34 · 288 阅读 · 0 评论 -
从零学算法232
你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。232.请你仅使用两个栈实现先入先出队列。你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。否则,返回 false。void push(int x) 将元素 x 推到队列的末尾。int pop() 从队列的开头移除并返回元素。int peek() 返回队列开头的元素。原创 2023-07-12 17:45:55 · 465 阅读 · 0 评论 -
从零学算法133
图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。输入:adjList = [[2,4],[1,3],[2,4],[1,3]]输出:[[2,4],[1,3],[2,4],[1,3]]节点 1 的值是 1,它有两个邻居:节点 2 和 4。节点 2 的值是 2,它有两个邻居:节点 1 和 3。节点 3 的值是 3,它有两个邻居:节点 2 和 4。节点 4 的值是 4,它有两个邻居:节点 1 和 3。输入:adjList = [[2],[1]]输出:[[2],[1]]原创 2023-07-10 17:01:24 · 231 阅读 · 0 评论 -
从零学算法20
20.给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”左括号必须以正确的顺序闭合。输入:s = “()”输入:s = “(]”原创 2023-07-10 13:52:54 · 153 阅读 · 0 评论 -
从零学算法150
tokens[i] 是一个算符(“+”、“-”、“*” 或 “/”),或是在范围 [-200, 200] 内的一个整数。输入:tokens = [“10”,“6”,“9”,“3”,”+“,”-11",“该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。输入:tokens = [“4”,“13”,“5”,”/“,”+“]输入:tokens = [“2”,“1”,“+”,“3”,"原创 2023-07-10 11:39:25 · 90 阅读 · 0 评论 -
从零学算法739
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。输入: temperatures = [73,74,75,71,69,72,76,73]输入: temperatures = [30,40,50,60]输入: temperatures = [30,60,90]输出: [1,1,4,2,1,1,0,0]输出: [1,1,1,0]输出: [1,1,0]原创 2023-07-10 11:23:50 · 202 阅读 · 0 评论 -
从零学算法155
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。--> 返回 -3.minStack.getMin();--> 返回 -2.void push(int val) 将元素val推入堆栈。int getMin() 获取堆栈中的最小元素。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。MinStack() 初始化堆栈对象。原创 2023-07-07 17:44:33 · 200 阅读 · 0 评论