给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。 数据范围:表达式长度满足 ,字符串中包含 + , –  , ( , ) ,保证表达式合法。-笔试面试资料

这是qklbishe.com第19393 篇笔试面试资料
提供答案分析,通过本文《给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。
数据范围:表达式长度满足 ,字符串中包含 + , –  , ( , ) ,保证表达式合法。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。
数据范围:表达式长度满足 给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。          数据范围:表达式长度满足  ,字符串中包含 + , -  , ( , ) ,保证表达式合法。 ,字符串中包含 + , –  , ( , ) ,保证表达式合法。
Java

给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。          数据范围:表达式长度满足  ,字符串中包含 + , -  , ( , ) ,保证表达式合法。 零葬

通过符号把减法看作加上负数的加法来做:(1) 遇到数字时计算数字;(2) 遇到运算符时累加结果;(3) 遇到左括号时把当前计算出来的结果和符号压栈,并清空当前的计算结果,转而计算括号内的表达式;(4) 遇到右括号时弹栈计算。
注意在每次的计算操作时,需要把当前的数字归零,下次遇到数字字符时重新累加。
import java.util.*;   public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param s string字符串       * @return int整型      */     public int calculate (String s) {         // write code here         Stack<Integer> stack= new Stack();         int res = 0;         int num = 0;         int sign = 1;         for(int i = 0; i < s.length(); i++){             char c = s.charAt(i);             if(c >= '0' && c <= '9'){                 num = num * 10 + (c - '0');             }else if(c == '+'){                 res += sign * num;                 num = 0;                 sign = 1;             }else if(c == '-'){                 res += sign * num;                 num = 0;                 sign = -1;             }else if(c == '('){                 stack.push(res);                 stack.push(sign);                 sign = 1;                 res = 0;             }else if(c == ')'){                 res += sign * num;                 num = 0;                 res *= stack.pop();                 res += stack.pop();             }         }         if(num != 0){             res += sign * num;         }         return res;     } }

2021-12-22 22:26:14 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一个字符串形式的表达式 s ,请你实现一个计算器并返回结果。 数据范围:表达式长度满足 ,字符串中包含 + , –  , ( , ) ,保证表达式合法。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情