leetcode-224:基本计算器

简介: leetcode-224:基本计算器

题目

题目连接

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。

注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。

示例 1:

输入:s = "1 + 1"
输出:2

示例 2:

输入:s = " 2-1 + 2 "
输出:3

示例 3:

输入:s = "(1+(4+5+2)-3)+(6+8)"
输出:23

解题

方法一:栈

参考链接

class Solution {
public:
    int calculate(string s) {
        int res=0,num=0,sign=1;
        stack<int> st;
        for(char c:s){
            if(c>='0'&&c<='9'){
                num=num*10+(c-'0');
            }
            else if(c=='+'||c=='-'){
                res+=sign*num;
                num=0;
                sign=c=='+'?1:-1;
            }
            else if(c=='('){
                st.push(res);
                st.push(sign);
                res=0;
                sign=1;
            }
            else if(c==')'){
                res+=sign*num;
                num=0;
                res*=st.top();
                st.pop();
                res+=st.top();
                st.pop();
            }
        }
        res+=sign*num;
        return res;
    }
};
相关文章
AC/DC电源模块设计原理、优化技术和应用案例三个方面进行阐述
AC/DC电源模块是一种将交流电转换成直流电的设备,广泛应用在各种电子设备中。其设计和优化是为了提高转换效率、降低功耗和提高性能稳定性。本文将从设计原理、优化技术和应用案例三个方面进行阐述。
AC/DC电源模块设计原理、优化技术和应用案例三个方面进行阐述
|
Python
【Leetcode刷题Python】25.K 个一组翻转链表
解决LeetCode "K 个一组翻转链表" 问题的三种方法:使用栈、尾插法和虚拟节点顺序法,并提供了每种方法的Python实现代码。
331 0
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
12869 17
|
人工智能 自然语言处理 程序员
通义灵码×DeepSeek 实战:打造一款小游戏,分享给朋友玩
通义灵码×DeepSeek 实战:打造一款小游戏,分享给朋友玩
|
机器学习/深度学习 文字识别 自然语言处理
分析对比大模型OCR、传统OCR和深度学习OCR
OCR技术近年来迅速普及,广泛应用于文件扫描、快递单号识别、车牌识别及日常翻译等场景,极大提升了便利性。其发展历程从传统方法(基于模板匹配和手工特征设计)到深度学习(采用CNN、LSTM等自动学习高级语义特征),再到大模型OCR(基于Transformer架构,支持跨场景泛化和少样本学习)。每种技术在特定场景下各有优劣:传统OCR适合实时场景,深度学习OCR精度高但依赖大量数据,大模型OCR泛化能力强但训练成本高。未来,大模型OCR将结合多模态预训练,向通用文字理解方向发展,与深度学习OCR形成互补生态,最大化平衡成本与性能。
6621 11
|
算法 JavaScript Python
【Leetcode刷题Python】79. 单词搜索和剑指 Offer 12. 矩阵中的路径
Leetcode第79题"单词搜索"的Python解决方案,使用回溯算法在给定的二维字符网格中搜索单词,判断单词是否存在于网格中。
401 4
|
Python
【Leetcode刷题Python】108. 将有序数组转换为二叉搜索树
LeetCode上108号问题"将有序数组转换为二叉搜索树"的Python实现,通过递归选取数组中间值作为根节点,构建高度平衡的二叉搜索树。
186 2
|
Python
【Leetcode刷题Python】105. 从前序与中序遍历序列构造二叉树
LeetCode上105号问题"从前序与中序遍历序列构造二叉树"的Python实现,通过递归方法根据前序和中序遍历序列重建二叉树。
286 3
|
算法 Python
【Leetcode刷题Python】73. 矩阵置零
本文介绍了LeetCode第73题的解法,题目要求在给定矩阵中将所有值为0的元素所在的行和列全部置为0,并提供了一种原地算法的Python实现。
370 0
【Leetcode刷题Python】73. 矩阵置零

热门文章

最新文章