广东上海专业网站建设公司,鹤壁网络推广哪家好,石家庄发生大事了,it软件外包一、题目描述
输入一个表达式(用字符串表示),求这个表达式的值。
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。
数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满…一、题目描述
输入一个表达式(用字符串表示),求这个表达式的值。
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。
数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满足 1≤n≤1000 。
二、输入描述
输入一个算术表达式。
三、输出描述
得到计算结果。
四、解题思路
读取输入的算术表达式字符串 s;初始化变量 num1 为0,用于保存当前运算结果;初始化变量 o1 为1,表示当前运算符的符号,默认为正号;初始化变量 num2 为1,用于保存当前数字的值;初始化变量 o2 为1,表示当前乘除运算符的符号,默认为正号;创建一个栈 stk,用于保存计算过程中的状态;遍历表达式字符串 s的每个字符 c: 若 c 是数字字符,则将连续的数字字符解析成一个整数 cur,并根据 o2 的符号进行乘除运算,更新 num2 的值;若 c 是乘除运算符字符 * 或 /,更新 o2 的符号;若 c 是左括号字符 ( 或 { 或 [,将当前的运算结果和运算符状态压入栈中,并初始化 num1、o1、num2、o2 的值;