火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

第12讲. 边界问题(分块收集处理)

作者: 作者的头像   huolong , 时间:2024-07-30 13:00:07 , 所有人可见, 阅读  7

第12讲. 边界问题(分块收集处理)

例 1. 一段文本中包含多个非 0 整数(整数之间由一些非数字符号分隔),请统计整数的个数,并计算所有整数之和。程序及测试情况如下,请回答后面问题。

样例 输入:120nn 67,t20,yw50,,g60 输出:5 317

s = input() + ','
sum, cnt = 0, 0
dt = 0 # 躯干初始化
for e in s:
    if '0' <= e <= '9':
        dt = dt * 10 + int(e)
    else:
        if dt>0 :
            sum += dt; cnt += 1
        dt = 0
if dt > 0: sum += dt; cnt += 1
print(cnt, sum)

3. 无直接分隔,通过状态变化做分隔。如最长递增序列等

例 2. RLE 压缩算法是 Windows 系统中使用的一种图像文件压缩方法,用两个数据表示,第一个记录指定像素重复的次数;第二个记录具体像素的值。例如,有一表示颜色像素值的字符串 RRRRGGBBB,用 RLE 压缩方法压缩后可用 4R2G3B 表示。程序及测试情况如下,请回答后面问题

样例 输入:RRRRGGBBB 输出:4R2G3B

s1 = "RRRGBBB"

s2 = ''; ch = s1[0]; cnt = 1
for e in s1[1:]:
    if ch == e:
        cnt += 1
    else:
        s2 += str(cnt) + ch
        ch = e #①
        cnt = 1
print(s2 + str(cnt) + ch ) 

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码