# 判断一个字符串中的有效括号()[]{}是否有效 def is_invalid(s): stack = [] for i in s: # 遇到左括号,则添加到堆栈中 if i == '(' or i == '[' or i == '{': stack.append(i) else: # 遇到右括号 ...
分类:
编程语言 时间:
2020-05-19 14:29:48
阅读次数:
46
java虚拟机的内存分为三个区域:栈stack、堆heap、方法区method area 栈:jvm为每个线程创建一个栈;栈属于线程私有,不能实现线程间的共享;栈由系统自动分配,速度快;是一个连续的内存空间。栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口 ...
分类:
编程语言 时间:
2020-05-18 14:28:54
阅读次数:
66
链接:https://leetcode-cn.com/explore/interview/card/bytedance/242/string/1013/ 代码: #include <stack> class Solution { public: string simplifyPath(string ...
分类:
其他好文 时间:
2020-05-18 00:23:56
阅读次数:
56
题意:有n根长度不尽相同的棍子,初始时它们首尾垂直相连,标号为1--n,第一根棍子的下端坐标为(0,0),上端坐标为(0,len[1]),其余棍子依次类推。接下来执行C此旋转,每次输入一个编号num和角度rad,使得第num根棍子和第num+1跟棍子间的逆时针角度变为rad度,求每次旋转后第n跟棍子 ...
分类:
其他好文 时间:
2020-05-17 17:56:20
阅读次数:
68
本文源码:GitHub·点这里||GitEE·点这里一、概念简介1、线程通信在操作系统中,线程是个独立的个体,但是在线程执行过程中,如果处理同一个业务逻辑,可能会产生资源争抢,导致并发问题,通常使用互斥锁来控制该逻辑。但是在还有这样一类场景,任务执行是有顺序控制的,例如常见的报表数据生成:启动数据分析任务,生成报表数据;报表数据存入指定位置数据容器;通知数据搬运任务,把数据写入报表库;该场景在相对
分类:
编程语言 时间:
2020-05-17 09:25:22
阅读次数:
74
下载了最新版的commons-beanutils-1.9.3.jar http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi ...
分类:
Web程序 时间:
2020-05-16 20:32:59
阅读次数:
127
问题 工作过程中我们时常会碰到栈溢出的问题,而这经常是由死循环引起的,见下面的代码。 那今日看了李兵老师的 "图解 Google V8 堆和栈:函数调用时如何影响到内存布局的" ,笔者才对栈溢出有了更深的了解。 首先为什么会使用栈的结构来管理函数调用? 这是因为在父函数中调用子函数,执行代码的控制权 ...
分类:
其他好文 时间:
2020-05-16 18:43:10
阅读次数:
55
来源:力扣(LeetCode) 解法一:辅助栈。 在遍历数组时用栈把数组中的数存起来,如果当前遍历的数比栈顶元素来的大,说明栈顶元素的下一个比它大的数就是当前元素。 class Solution { public: vector<int> dailyTemperatures(vector<int>& ...
分类:
其他好文 时间:
2020-05-16 00:59:19
阅读次数:
81
条件变量(Condition Variable) CV有两个问题值得讨论: 为什么有了mutex,仍需要cond cond为什么一定要配合mutex使用 为什么有了mutex,仍需要cond mutex与cond的适用场景并不同,mutex是控制shared resource在任一时刻只能由一个线程 ...
分类:
系统相关 时间:
2020-05-16 00:17:07
阅读次数:
95
线程间的通信 线程通信就是线程与线程间进行信息的交换。 这里可以举个例子,两个线程交替的打印0 9这10个数字。 首先分析一下,比如线程一先开始打印,当它打印了数字0后,他应该 等待 线程二打印数字1,线程二打印了之后又要 等待 线程一打印数字2... 那怎么样才能让线程一开始等待呢?这里可以使用O ...
分类:
编程语言 时间:
2020-05-15 18:29:57
阅读次数:
63