当前位置: 首页 > news >正文

表达式求值

求解代码

HashMap<Character,Integer>map=newHashMap<Character,Integer>(){{put('+',1);put('-',1);put('*',2);}};voidcalc(LinkedList<Integer>nums,LinkedList<Character>operators){if(nums.isEmpty()||nums.size()<2){return;}if(operators.isEmpty()){return;}intb=nums.pollLast();inta=nums.pollLast();charoperator=operators.pollLast();intres=0;if(operator=='+'){res=a+b;}elseif(operator=='-'){res=a-b;}elseif(operator=='*'){res=a*b;}nums.addLast(res);}publicintsolve(Strings){s=s.replaceAll(" ","");char[]str=s.toCharArray();intn=s.length();LinkedList<Integer>nums=newLinkedList<>();LinkedList<Character>operators=newLinkedList<>();nums.addLast(0);for(inti=0;i<n;i++){charc=str[i];if(c=='('){operators.addLast(c);}elseif(c==')'){while(!operators.isEmpty()){if(operators.peekLast()!='('){calc(nums,operators);}else{operators.pollLast();break;}}}else{if(Character.isDigit(c)){intbase=0;intj=i;while(j<n&&Character.isDigit(str[j])){base=base*10+(str[j++]-'0');}nums.addLast(base);i=j-1;}else{if(i>0&&(str[i-1]=='('||str[i-1]=='+'||str[i-1]=='-')){nums.addLast(0);}while(!operators.isEmpty()&&operators.peekLast()!='('){charprev=operators.peekLast();if(map.get(prev)>=map.get(c)){calc(nums,operators);}else{break;}}operators.addLast(c);}}}while(!operators.isEmpty()&&operators.peekLast()!='('){calc(nums,operators);}returnnums.peekLast();}

小贴士

1.nums.addLast(0)主要用于处理【表达式以正负号开头】的场景,比如-1+2+3*4,可以把-1转为0-1,把+3转为0+3

2.i = j - 1可以修正外层for循环的索引i,让i直接跳到「当前多位数的最后一位」,抵消for循环的自动i++,避免重复遍历已经处理过的数字字符。、

比如表达式123+4,j=3

执行i = j - 1 → i = 3 - 1 = 2,然后,外层for循环执行自动i++ → i2变成3,下一轮循环,i=3,正好读取字符str[3] → '+'

http://www.jsqmd.com/news/257506/

相关文章:

  • 2025年火锅界顶流盘点,这些品牌火遍全网!美食/老火锅/火锅/火锅店/特色美食/社区火锅/烧菜火锅火锅回头客多的找哪家 - 品牌推荐师
  • 校友会2026年中国语言类大学排名,中国传媒大学、黑龙江外国语学院、山东外国语职业技术大学、武汉外语外事职院第一
  • Google亮剑“灯塔”:一场法律与代码交织的PhaaS围剿战,中国安全界如何接招?
  • 2026年贵阳可靠的农村污水处理设备,污水处理成套设备,一体化污水处理设备厂家新品推荐榜 - 品牌鉴赏师
  • 2026年齐齐哈尔衣柜橱柜定制推荐供应商,润昕木业零套路不欺瞒 - 工业品牌热点
  • 钓鱼邮件“精准制导”升级:Outlook与Gmail成重灾区,企业身份防线告急
  • 计算机等级考试——二叉树考点和坑——东方仙盟
  • 先知AI如何破解男装行业的数据迷局?
  • AI视频生成1.7.5 |无限AI视频生成,需要特殊网络
  • 家用卫浴怎么选?厂家口碑领先推荐,评价高的卫浴口碑推荐榜优质企业盘点及核心优势详细解读 - 品牌推荐师
  • 钓鱼团伙用Telegram机器人“接单”:欧洲凭证窃取进入“实时客服”时代
  • 救命神器2026继续教育TOP10AI论文写作软件测评与推荐
  • MySQL 核心机制精讲:B+树查询、Buffer Pool、COUNT 优化与 CHAR/VARCHAR 实战指南
  • AIGC技术与进展(1)一、AIGC的发展历程二、AIGC的核心技术三、AIGC的重要进展
  • 校友会2026年中国农林类大学排名,中国农业大学、华南农业大学珠江学院、新疆农业职业技术大学、江苏农林职业技术学院第一
  • 2025中国力学大会AI+分享 | 四川大学张来平研究员:基于图神经网络的流场预测方法研究进展
  • GESP认证C++编程真题解析 | P11964 [GESP202503 七级] 图上移动
  • 博士答辩PPT分享 | 高雷诺数湍流场数据同化与湍流模型机器学习研究
  • 校友会2026年中国财经类大学排名,上海财经大学、西安欧亚学院、广东工商职业技术大学、浙江金融职业学院第一
  • GESP认证C++编程真题解析 | P11965 [GESP202503 七级] 等价消除
  • 视频技术在现代社会中的应用与发展
  • 有哪些SRM系统是专门为供应链管理设计的? - 企业数字化观察家
  • 校友会2026年天津市大学排名,南开大学、天津仁爱学院、天津职业大学、天津轻工职业技术学院第一
  • 计算机毕业设计Django+Vue.js高考推荐系统 高考分数线预测 大数据毕设(源码+LW文档+PPT+讲解)
  • 实用指南:java基础-LinkedList(链表)
  • 互联网大厂Java小白求职面试全解析:从Spring到微服务与大数据
  • RS485
  • Eclipse 重启选项详解
  • 2026年深圳热门的GEO全场景推广解决方案推荐,哪家公司靠谱? - 工业品牌热点
  • 基于VUE的高校发展学生党员管理系统[VUE]-计算机毕业设计源码+LW文档