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

leetcode:942. 增减字符串匹配(python3解法)

难度:简单

        由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中:

  • 如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I' 
  • 如果 perm[i] > perm[i + 1] ,那么 s[i] == 'D' 

        给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个 。

 

示例 1:

输入:s = "IDID"
输出:[0,4,1,3,2]

示例 2:

输入:s = "III"
输出:[0,1,2,3]

示例 3:

输入:s = "DDI"
输出:[3,2,0,1]

 

提示:

  • 1 <= s.length <= 105
  • s 只包含字符 "I" 或 "D"

题解:

class Solution:
    def diStringMatch(self, s: str) -> List[int]:
        n = len(s)  
        low, high = 0, n  
        result = []  
        for char in s:  
            if char == 'I':  
                result.append(low)  
                low += 1   
            else:  # 'D'  
                result.append(high)  
                high -= 1  
                
        # 最后加入剩余的数  
        result.append(high)  
        return result 
        

http://www.dtcms.com/a/24642.html

相关文章:

  • 使用 DeepSeek + 语音转文字工具 实现会议整理
  • GO语言的安装以及第一个Go语言程序
  • 国鑫DeepSeek 671B本地部署方案:以高精度、高性价比重塑AI推理新标杆
  • 7.【线性代数】——求解Ax=0,主列和自由列
  • 音频采集(VUE3+JAVA)
  • JavaScript中字符串的常用方法
  • QEMU源码全解析 —— 内存虚拟化(14)
  • 【二分搜索题目】
  • 使用nginx+rtmp+ffmpeg实现桌面直播
  • docker 安装 Rabbitmq 详解
  • 机器学习实战(5):决策树与随机森林——直观的分类与回归方法
  • leetcode-414.第三大的数
  • c语言易错题(选择)
  • VMware按照的MacOS升级后无法联网
  • A9. Jenkins Pipeline自动化构建,飞书通知
  • 【Github每日推荐】-- 2024 年项目汇总
  • 网工_IP地址
  • 云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色
  • 蓝桥杯单片机基础部分——6、555定时器
  • 【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨
  • Java中的锁
  • 六、敏捷开发工具:项目管理工具
  • 常用Webpack Loader汇总介绍
  • 【C++】结构体排序+sort(),cmp()参数写法口诀
  • 【时时三省】(C语言基础)三种基本结构和改进的流程图
  • Day01 【苍穹外卖】环境搭建与前后端联调
  • 【Java】泛型与集合篇(二)
  • cesium视频投影
  • 【核心算法篇三】《DeepSeek强化学习:Atari游戏训练框架解析》
  • 使用 Docker 部署 Apache Spark 集群教程