Excel单元格数值统计

Excel 工作表中对选定区域的数值进行统计的功能非常实用。
仿照Excel的这个功能,请对给定表格中选中区域中的单元格进行求和统计,并输出统计结果。
为简化计算,假设当前输入中每个单元格内容仅为数字或公式两种。
● 如果为数字,则是一个非负整数,形如3、77
● 如果为公式,则固定以=开头,且仅包含下面三种情况:
1.等于某单元格的值,例如=B12
2.两个单元格的双目运算(仅为+或-),形如=C1-C2、C3+B2
3.单元格和数字的双目运算(仅为+或-),形如=B1+1、100-B2

注意:

公式内容都是合法的,例如不存在,=C+1、=C1-C2+B3,=5、=3+5
不存在循环引用,例如A1=B1+C1、C1=A1+B2
内容中不存在空格、括号

输入描述:

第一行两个整数rows cols,表示给定表格区域的行数和列数,1<=rows<=20,1<=cols<=26。
接下来rows行,每行cols个以空格分隔的字符串,表示给定表格values的单元格内容。
最后一行输入的字符串,表示给定的选中区域,形如A1:C2。

输出描述:

一个整数,表示给定选中区域各单元格中数字的累加总和,范围-2,147,483,648 ~ 2,147,483,647

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入
1 3
1 =A1+C1 3
A1:C1

输出
8

示例2 输入输出示例仅供调试,后台判题数据一般不包含示例

输入
5 3
10 12 =C5
15 5 6
7 8 =3+C2
6 =B2-A1 =C2
7 5 3
B2:C4

输出
29
备注:
表格的行号120,列号AZ,例如单元格B3对应values[2][1]。

    public static Map<String, String> map = new HashMap<>();public static void main(String[] args) {int num =0;Scanner sc = new Scanner(System.in);String[] s = sc.nextLine().split(" ");int n = Integer.valueOf(s[0]);int m = Integer.valueOf(s[1]);for (int i = 0; i < n; i++) {String[] s1 = sc.nextLine().split(" ");for (int j = 0; j < s1.length; j++) {//以类似于A1,B2为key将所有值存入mapmap.put((char) ('A' + j) + String.valueOf(i+1), String.valueOf(s1[j]));}}String[] s1 = sc.nextLine().split(":");char i1 = s1[0].charAt(0);char i2 = s1[1].charAt(0);int j1 = Integer.valueOf(s1[0].substring(1));int j2 = Integer.valueOf(s1[1].substring(1));//获取选中范围的key遍历mapfor (char i = i1; i <= i2; i++) {for (int j = j1; j <= j2; j++) {String s2 = map.get(i + "" + j);if (s2.contains("=")) {num+=getExcelNum(s2);}else {num+=Integer.valueOf(s2);}}}System.out.println(num);}public static int getExcelNum(String s) {int sum = 0;int j=1;String[] split = s.split("[\\=|\\+|\\-]");//正则  "=B2-A1" -> ["","B2","A1"]for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);String s2 = map.get(split[j]);switch (c) {case '=':sum += Integer.valueOf(s2 == null ? split[j] : s2);j++;break;case '+':sum += Integer.valueOf(s2 == null ? split[j] : s2);j++;break;case '-':sum -= Integer.valueOf(s2 == null ? split[j] : s2);j++;break;}if (j>=split.length){break;}}return sum;}

Excel单元格数值统计相关推荐

  1. 【华为OD机试真题】Excel单元格数值统计(javapython)100%通过率 超详细代码注释 代码深度解读

    [华为OD机试真题 2022&2023]真题目录 @点这里@ [华为OD机试真题]信号发射和接收 &试读& @点这里@ [华为OD机试真题]租车骑绿道 &试读& ...

  2. 【华为OD机试】Excel单元格数值统计

    题目描述:[Excel单元格数值统计] Excel 工作表中对选定区域的数值进行统计的功能非常实用. 仿照Excel的这个功能,请对给定表格中选中区域中的单元格进行求和统计,并输出统计结果. 为简化计 ...

  3. 【满分】【华为OD机试真题2023 JAVAJS】Excel单元格数值统计

    华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 Excel单元格数值统计 知识点递归循环数组 时间限制:2s 空间限制:256MB 限定语言:不限 题目描述: Excel工作表中对选定区 ...

  4. 华为机试真题 Java 实现【Excel单元格数值统计】【2022.11 Q4】

    题目描述 题目内容来自(https://blog.csdn.net/goldarmour/article/details/129152400) [Excel单元格数值统计] Excel 工作表中对选定 ...

  5. 华为OD机试 -Excel 单元格数值统计(Python) | 机试题+算法思路+考点+代码解析 【2023】

    Excel 单元格数值统计 题目 Excel 工作表中对选定区域的数值进行统计的功能非常实用. 仿照 Excel 的这个功能,请对给定表格中选中区域中的单元格进行求和统计,并输出统计结果. 为简化计算 ...

  6. 【华为OD机试c++】Excel单元格数值统计【 2023 Q1|200分】

    华为OD机试- 题目列表 2023Q1 点这里!! 2023华为OD机试-刷题指南 点这里!! 题目描述 Excel 工作表中对选定区域的数值进行统计的功能非常实用. 仿照Excel的这个功能,请对给 ...

  7. 华为OD机试 - Excel单元格数值统计(Java JS Python)

    题目描述 Excel工作表中对选定区域的数值进行统计的功能非常实用. 仿照Excel的这个功能,请对给定表格中选中区域中的单元格进行求和统计,并输出统计结果. 为简化计算,假设当前输入中每个单元格内容 ...

  8. 【华为OD机试 2023】Excel单元格数值统计(C++ Java JavaScript Python)

    文章目录 题目描述 输入描述 输出描述 备注 用例 题目解析 C++ JavaScript Java Python 题目描述 Excel工作表中对选定区域的数值进行统计的功能非常实用. 仿照Excel ...

  9. 华为OD机试题 - Excel 单元格数值统计(JavaScript)| 机考必刷

    更多题库,搜索引擎搜 梦想橡皮擦华为OD

最新文章

  1. 2021美国科学天才奖发榜!16名华裔高中生入围「少年诺奖」
  2. The Internet Communications Engine (Ice) 跨平台异构通讯方案 第一弹-ICE简介
  3. jsp基础语法【05】_跳转指令
  4. JAVA--网络编程
  5. android 前台服务自定义布局不显示_Android自定义LinearLayout布局显示不完整的解决方法...
  6. c语言关闭控制台窗口,怎样可以屏蔽控制台程序的关闭按钮
  7. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
  8. 蓝桥杯 基础练习 回文数
  9. java B2B2C 源码 多级分销Springcloud多租户电子商城系统-Spring Cloud eureka
  10. @Scope作用域代理的应用:@RefreshScope注解实现动态刷新配置的底层原理与实现
  11. 使用C/C++编程控制LEGO EV3
  12. 求两个数的最小公倍数c语言程序,用C语言求两个数的最大公约数和最小公倍数...
  13. 安卓如何关闭软键盘?
  14. 同心向前,Google Play 十周年啦!
  15. 快速学习OSG(2)——光照
  16. Mifare UltraLight
  17. 计算机性能低玩游戏卡顿,Win7电脑玩游戏很卡和FPS帧数太低的优化方法
  18. supermap gis
  19. Java Http连接中使用代理(Proxy)及其验证(Authentication)
  20. PDF处理软件:无法加注释加高亮(解密PDF等)

热门文章

  1. 20155322 2017-2018-1《信息安全系统设计》第六周学习总结
  2. FCFS、SJF、HRRN调度算法
  3. 史上最简单安装windows11原版镜像方法
  4. ts:npm下载第三方插件后引入时,提示“无法找到模块xxx的声明文件“
  5. IDEA中设置python解释器(不同虚拟环境)
  6. 判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0. // // AABC
  7. frp 供内网穿透服务的工具
  8. JAVA很多人在线抢单怎么解决_java redis做app后台 怎么实现多人抢单
  9. windows手动修改远程端口33890
  10. 从原理到应用落地,一文读懂推荐系统中的深度学习技术