当前位置: 首页 > 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 
        

相关文章:

  • 使用 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】材料工程与应用力学的探讨
  • 司法部:民营经济促进法明确禁止违规异地执法、利用行政或者刑事手段违法干预经济纠纷
  • 美联储宣布维持联邦基金利率目标区间不变
  • 动物只有在被认为对人类有用时,它们的建筑才会被特别设计
  • “半世纪来对无争议边界最深入袭击”:印巴冲突何以至此又如何收场?
  • 印观察|印巴战火与莫迪政府三重冒险:南亚火药桶已至临界点
  • 陕南多地供水形势严峻:有的已呼吁启用自备水井