代码随想录算法训练营第十一天 | ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值
今日学习的内容
● 20. 有效的括号
var isValid = function(s) {
let stack = [] ;
for(let i = 0 ;i < s.length ; i++){
let temp = s[i];
if(temp == '('){
stack.push(')')
continue;
}
if(temp == '['){
stack.push(']');
continue;
}
if(temp == '{'){
stack.push('}')
}else{
if(temp != stack.pop()){
return false
}
}
}
console.log(stack,90)
return stack.length ==0
};
● 1047. 删除字符串中的所有相邻重复项
var removeDuplicates = function(s) {
let stack = [] ;
s = Array.from(s);
for(let i = 0 ;i < s.length ;i++){
if(stack[stack.length-1] == s[i]){
stack.pop()
}else{
stack.push(s[i])
}
}
return stack.join('')
};
● 150. 逆波兰表达式求值
var evalRPN = function(tokens) {
let stack = [] ;
let obj = {
'+':1,
'-':1,
'*':1,
'/':1
}
let res =0
for(let i = 0 ; i < tokens.length ; i++){
if(obj[tokens[i]]){
let a = stack.pop();
let b = stack.pop();
if(tokens[i] == '+'){
res = a/1+b/1
}
if(tokens[i] == '-'){
res = b/1-a/1
}
if(tokens[i] == '*'){
res = a*b
}
if(tokens[i] == '/'){
console.log(a,b)
res = b/a|0
// res = Math.floor(b*1/a) ||0
}
stack.push(res)
}else{
stack.push(tokens[i])
}
console.log(stack)
}
// console.log(stack)
return stack.pop()
};
今日收获,记录一下自己的学习时长
1.5h
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?