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

OD C卷 - 数据单元的变量替换

数据单元的变量替换(100)

输入描述:

  • 输入一行数据,用逗号分割每个单元格,尾部没有逗号,最多26个单元格,对应编号A-Z;
  • 每个单元格内容:字母、数字、<> 单元格引用,如aCd<A>8u引用单元格A;
  • 输入不存在循环引用,一个单元格只能引用一个其他的单元格;

输出描述:
输出所有单元格展开的内容,单元格间用逗号分隔,处理出错则输出-1

 
示例1
输入:1,2<A>00
输出: 1,2100

 
示例2:
输入:<B>12,1
输出:112,1
 
示例3
输入:<B<12,1
输出:-1
 
示例4
输入:<B>12,1,a,2<A>00
输出:112,1,a,211200


# 解析每个带有引用的单元格
def parse_ref(cell):global error_label, cells, resultleft_arrow = cell.find("<")right_arrow = cell.find(">")if left_arrow >= 0 and right_arrow >= 0 and right_arrow - left_arrow == 2:# 获取引用值ref_idx = ord(cell[left_arrow + 1]) - 65ref_val = cells[ref_idx]  # 可能还包含引用if ref_val.isalnum():return cell[:left_arrow] + ref_val + cell[right_arrow + 1:]else:return cell[:left_arrow] + parse_ref(ref_val) + cell[right_arrow + 1:]else:error_label = Truereturn "-1"# 输入一行单元格
cells = input().strip().split(",")# 对应cells 存储替换的单元格结果
result = ["" for _ in cells]
# 解析过程是否有错
error_label = False
for idx, cell in enumerate(cells):if cell.isalnum():result[idx] = cellcontinueelse:# 含有引用符号r = parse_ref(cell)result[idx] = rif error_label:print("-1")break# 输出结果
print(",".join(result))

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 初级java每日一道面试题-2024年7月23日-Iterator和ListIterator有什么区别?
  • C++五子棋(未做完,但能玩,而且还不错)
  • Hi3751V560_SELinux
  • Error和Exception区别
  • Jenkins卡在等待界面解决方法
  • python——pynput
  • java面试-场景题
  • 嵌入式C/C++、FreeRTOS、STM32F407VGT6和TCP:智能家居安防系统的全流程介绍(代码示例)
  • Pycharm 和虚拟环境的那些事?
  • 【SASS/SCSS(三)】样式的复用与动态计算(@mixin和@function)
  • Qt编程技巧总结篇(6)-QCustomPlot绘图篇(一)
  • 客户在哪儿AI与其他服务于B端的科技产品有何不同
  • 华为ensp中ISIS原理与配置(超详细)
  • centos系统mysql数据库压缩备份与恢复
  • 宝塔国际版Docker Manager 3.4获取镜像列表报错解决办法
  • 自己简单写的 事件订阅机制
  • django开发-定时任务的使用
  • echarts花样作死的坑
  • express如何解决request entity too large问题
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JavaScript函数式编程(一)
  • React中的“虫洞”——Context
  • XML已死 ?
  • 程序员最讨厌的9句话,你可有补充?
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 关于for循环的简单归纳
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 开发基于以太坊智能合约的DApp
  • 数组大概知多少
  • 物联网链路协议
  • 限制Java线程池运行线程以及等待线程数量的策略
  • UI设计初学者应该如何入门?
  • 回归生活:清理微信公众号
  • ​数据链路层——流量控制可靠传输机制 ​
  • # wps必须要登录激活才能使用吗?
  • #android不同版本废弃api,新api。
  • #微信小程序:微信小程序常见的配置传旨
  • $.ajax()
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (C语言)共用体union的用法举例
  • (LeetCode 49)Anagrams
  • (附源码)计算机毕业设计ssm电影分享网站
  • (一)kafka实战——kafka源码编译启动
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 常见的偏门问题
  • .NET 事件模型教程(二)
  • .net流程开发平台的一些难点(1)