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

网站个人信息页面布局网站做资讯需要获取许可证吗

网站个人信息页面布局,网站做资讯需要获取许可证吗,免费建站网站哪个好,wordpress无插件美化文章目录 一、题目二、C# 题解 一、题目 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 示例 …

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。

  表达式仅包含非负整数,+-*/ 四种运算符和空格 。 整数除法仅保留整数部分。

示例 1:

输入: “3+2*2”
输出: 7

示例 2:

输入: " 3/2 "
输出: 1

示例 3:

输入: " 3+5 / 2 "
输出: 5

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 请不要使用内置的库函数 eval

  点击此处跳转题目。

二、C# 题解

  首先将中缀表达式转换为后缀表达式,然后计算后缀表达式:

public class Solution {public int Calculate(string s) {ArrayList   post   = new ArrayList();   // 后缀表达式Stack<char> opStk  = new Stack<char>(); // 操作符栈Stack<int>  numStk = new Stack<int>();  // 操作数栈int         num    = 0;                 // 存储每次扫描的数字/* 生成后缀表达式 post */foreach (char c in s) {if (char.IsNumber(c)) num = num * 10 + c - '0'; // 碰见操作数else if (c != ' ') {                            // 碰见操作符post.Add(num);num = 0;while (opStk.Count != 0 && OpPriority(opStk.Peek(), c) >= 0) // 将优先级不低于 c 的操作符弹入 postpost.Add(opStk.Pop());opStk.Push(c); // c 进栈}}post.Add(num);                                  // 最后一个操作数进栈while (opStk.Count != 0) post.Add(opStk.Pop()); // 剩余操作符进栈/* 计算后缀表达式 post */foreach (object o in post) {if (o is char c) {// 每次取出两个操作数int n2 = numStk.Pop();int n1 = numStk.Pop();// 计算结果,压入栈内int result = c switch {'+' => n1 + n2,'-' => n1 - n2,'*' => n1 * n2,'/' => n1 / n2,_   => 0};numStk.Push(result);}else numStk.Push((int)o);}return numStk.Pop();}// 比较 c1 和 c2 的优先级// c1 > = < c2 分别返回 1 0 -1public int OpPriority(char c1, char c2) => c1 switch {'*' or '/' when c2 is '*' or '/' => 0,'*' or '/'                       => 1,'+' or '-' when c2 is '+' or '-' => 0,'+' or '-'                       => -1,};
}
  • 时间:68 ms,击败 71.43% 使用 C# 的用户
  • 内存:44.35 MB,击败 28.57% 使用 C# 的用户

  对于本题,由于只有两个优先级的操作符,因此可以简化操作:

public class Solution {public int Calculate(string s) {Stack<int> numStk = new Stack<int>();int        ans    = 0, num = 0;char       preOp  = '+'; // 上次的操作符for (int i = 0; i < s.Length; i++) {if (char.IsNumber(s[i])) num = num * 10 + s[i] - '0';if (!char.IsNumber(s[i]) && s[i] != ' ' || i == s.Length - 1) { // 遇见操作符或者到达结尾switch (preOp) { // 依据上一个操作符计算结果放入 numStk 中case '+':numStk.Push(num);break;case '-':numStk.Push(-num);break;case '*':numStk.Push(numStk.Pop() * num);break;case '/':numStk.Push(numStk.Pop() / num);break;}num = 0;preOp = s[i];}}while (numStk.Count != 0) ans += numStk.Pop(); // 结果累加return ans;}
}
  • 时间:56 ms,击败 100.00% 使用 C# 的用户
  • 内存:37.93 MB,击败 57.14% 使用 C# 的用户
http://www.yayakq.cn/news/50007/

相关文章:

  • 门户网站建设工作讲话怎么把网址变成网页链接
  • 建设网站设计论文范文wordpress 嵌套回复
  • 网站开发 慕课电商网站设计公司排名
  • 宁波做网站的企业网站制作自己做
  • 怎样增加网站的权重网站建设合同书-详细版
  • 免费的行情网站ifind是看房网
  • 电子商务网站规划流程建设网站的基本步骤
  • 网站运营系统如何建立自己的手机网站
  • 建设银行河南省分行招聘网站公司网站开发 flask
  • 机械厂做网站电子商务网站有哪些
  • 只有一个域名怎么建设网站外包网站建设是什么意思
  • 怒江北京网站建设如何查询自己的网站是否被收录
  • 中铁建设集团门户网登录网站东莞营销网站建设服务
  • 网站建设程序招聘网站文章后台写完前台不显示
  • 企业网站的建设全网覆盖推广
  • 大连的网站设计公司wordpress 主题 对比
  • 燕郊网站建设哪家好永久免费个人网站申请
  • 红动中国设计网站官网wordpress验证码查看
  • 响应式网站报价广州市品牌网站建设公司
  • 做网站优化费用开发app费用一览表
  • 新网站如何快速收录柳北网站制作
  • 网站开发能自学吗wordpress简洁list主题
  • 网站开发的目的实习报告可以商用的图片网站
  • 网站建设费用包括哪些内容wordpress图片地址优化
  • 范文写作网站百度云搜索引擎入口盘搜搜
  • 公司网站建设算什么费用网络运营者义务
  • 怎么做网站手机版成都百度推广电话号码是多少
  • 东莞做网站seo搭建什么样的平台
  • 网站增加网页网页云原神
  • 做个网站得多少钱网站开发的搭建框架是什么意思