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

OD-火星文计算(Python)

火星文计算

题目描述

已经火星人使用的运算符号为# $
其与地球人的等价公式如下
x#y=2*x+3*y+4
x$y=3*x+y+2
x y是无符号整数
地球人公式按照c语言规则进行计算
火星人公式中$符优先级高于#相同的运算符按从左到右的顺序运算

输入描述

火星人字符串表达式结尾不带回车换行
输入的字符串说明是 字符串为仅有无符号整数和操作符组成的计算表达式

  1. 用例保证字符串中操作数与操作符之间没有任何分隔符
  2. 用例保证操作数取值范围为32位无符号整数,
  3. 保证输入以及计算结果不会出现整型溢出
  4. 保证输入的字符串为合法的求值报文
    例如: 123#4$5#76$78
  5. 保证不会出现非法的求值报文
    例如:
    #4$5 这种缺少操作数
    4$5# 这种缺少操作数
    4#$5 这种缺少操作数
    4 $5 有空格
    3+4-5*6/7 有其他操作符
    12345678987654321$54321 32位整数溢出

输出描述

根据火星人字符串输出计算结果
结尾不带回车换行

示例一

输入

7#6$5#12

输出

226

说明

示例

7#6$5#12=7#(3*6+5+2)#12=7#25#12=(2*7+3*25+4)#12=93#12=2*93+3*12+4=226

代码

# !E:\pythonScript\venv python3
# -*- coding: utf-8 -*-
"""
Date: 2023/4/4
Author: kang
ep:
x#y=2*x+3*y+4
x$y=3*x+y+2
7#6$5#12
"""import remars = input()
mars_l = list(map(int, re.sub(r"#|\$", " ", mars).split()))
sign = re.findall(r"#|\$", mars)
for i in range(len(sign)):if sign[i] == "$":k = 3 * int(mars_l[i]) + int(mars_l[i + 1]) + 2mars_l[i] = kmars_l[i + 1] = ""
new_list = [i for i in mars_l if i != ""]
earth = 0
for i in range(len(new_list)):if i == 0:earth = (2 * new_list[0] + 3 * new_list[1] + 4)elif i > 1:earth = (2 * earth + 3 * new_list[i] + 4)
print(earth)

 

 

http://www.lryc.cn/news/57838.html

相关文章:

  • 【vue3教程】初入了解vue3的基本结构
  • 智慧供水综合运营平台解决方案
  • 文件系统、描述符和缓冲区
  • java微服务商城高并发秒杀项目--009.流控规则和降级规则
  • php编写的脚本,如何才能在windows系统运行呢?
  • 政务综合服务平台建设项目方案书
  • python好玩的短代码
  • 会Python如何学习C#的几个关键点
  • 索引失效原则与查询优化
  • 读完这篇文章你就彻底了解了什么是AES算法
  • ArrayDeque类常用方法
  • Leetcode.130 被围绕的区域
  • MySQL-四大类日志
  • 新加坡量子软件公司Horizon完成1810万美元A轮融资
  • Spring学习(四):Scope的介绍及其失效解决方案
  • 【学习集合--Set】
  • 函数的参数
  • 数组(八)-- LC[53][152] 最大子数组之和与乘积最大子数组
  • docker2-zabbix
  • ctcdecode安装
  • 虚树学习小记
  • 【C++】特殊类设计(单例模式)
  • 基于YOLOv5的水下海洋目标检测
  • 磁盘这列(Raid)
  • Oracle之PL/SQL存储过程与函数练习题(七)
  • C++入门教程||C++ 基本的输入输出||C++ 数据结构
  • 线性表——顺序表
  • 第六章 Vite4+Vue3+Vtkjs 模型颜色切换、漫反射曲面颜色
  • 【QT学习七】QTreeWidget
  • 【Linux】组管理和权限管理