讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在列表求和中智能跳过6与9之间的所有数字(双向区间,含6→9和9→6)

小磊小哥_7835

小磊小哥_7835

发布时间:2025-12-25 19:47:02

|

345人浏览过

|

来源于php中文网

原创

如何在列表求和中智能跳过6与9之间的所有数字(双向区间,含6→9和9→6)

本文介绍一种改进的列表求和算法:跳过每一对相邻的6与9(或9与6)之间所有数字,但保留6–6、9–9区间内的数字;支持多次出现的6/9,实现真正的“双向排除区间”。

在常规的“跳过6到9之间数字”问题中,我们只需用一个布尔标志 between6And9 跟踪是否处于6之后、9之前即可。但本题的核心挑战在于“双向性”:不仅 6 → ... → 9 区间要被排除,9 → ... → 6 区间同样需要排除;而两个6之间(如 [6,1,2,6])或两个9之间(如 [9,5,9])的数字必须保留。

这意味着不能仅靠单标志位判断,而需区分两种独立状态:

  • 当前是否刚遇到一个 6(且尚未匹配到后续的9)?
  • 当前是否刚遇到一个 9(且尚未匹配到后续的6)?

更关键的是:每次新遇到6或9时,应立即结算此前累积的、“安全”的数字和(即上一个有效区间的和),然后重置临时累加器。只有当6与9(或9与6)成对出现时,中间段才被丢弃;否则,数字始终暂存于 temp 中,等待确认是否属于可累加区间。

以下是完整、健壮的实现:

Python Dependency Candidate Fetcher 2
Python Dependency Candidate Fetcher 2

根据包的能力以及 Jupyter 环境中的导入语句,从候选列表中挑选最适合用户表格工作流的 Python 包。

下载
def twistersum(nums):
    the_sum = 0
    temp = 0
    saw6 = saw9 = False  # 分别标记最近一次遇到的是6还是9

    for num in nums:
        if num == 6:
            # 遇到6:若此前已见过6(即6...6),或既没见6也没见9(首个6),则当前temp属于安全段,可加入总和
            if saw6 or (not saw6 and not saw9):
                the_sum += temp
            temp = 0
            saw6 = True
            saw9 = False  # 重置9状态:现在以6为起点,等待匹配9
        elif num == 9:
            # 遇到9:若此前已见过9(即9...9),或既没见6也没见9(首个9),则temp安全
            if saw9 or (not saw6 and not saw9):
                the_sum += temp
            temp = 0
            saw6 = False
            saw9 = True  # 重置6状态:现在以9为起点,等待匹配6
        else:
            # 普通数字:持续累加到temp(暂不决定归属,等边界触发结算)
            temp += num

    # 循环结束后,将最后一段未被边界触发的temp加入总和(如结尾是数字,或结尾是6/9但无配对)
    the_sum += temp
    return the_sum

# 测试用例
list1 = [1, 2, 3, 4, 6, 7, 3, 5, 9, 7, 2, 4, 9, 4, 5, 6, 7, 8, 9, 4, 3, 2, 1]
print(twistersum(list1))  # 输出:33

✅ 算法逻辑解析:

  • temp 始终缓存“当前待定区间”的数字和;
  • 每次遇到6或9,先将当前 temp 合理结算(依据 saw6/saw9 状态判断该段是否“已完成且安全”),再清空 temp 并更新状态;
  • saw6=True 表示“上一个关键数是6,现正期待9来闭合区间”;同理 saw9=True 表示“正期待6”;
  • saw6 and saw9 的情况不会发生(因每次设True时必设另一个为False),因此状态始终互斥且明确;
  • 结尾的 the_sum += temp 是必须的——它处理末尾无配对边界(如 [..., 5] 或 [..., 6])的情形。

⚠️ 注意事项:

  • 该算法不依赖6和9数量相等,能正确处理悬空6或9(如 [6,1,2] → 忽略全部;[1,2,9] → 忽略全部;[6,1,9,2,6,3] → 仅累加最后的3);
  • 时间复杂度 O(n),空间复杂度 O(1),适合大规模数据;
  • 若需调试,可在循环内添加 print(f"num={num}, saw6={saw6}, saw9={saw9}, temp={temp}, sum={the_sum}") 观察状态流转。

通过双状态机设计,我们精准建模了“6↔9双向排除区间”的语义,使代码既简洁又具备强鲁棒性——这才是工程级Python算法应有的表达力。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

3320

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

269

2026.02.03

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

6796

2023.08.14

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

0

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

0

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

20

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

20

2026.11.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn