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

LeetCode|Day8|1047. 删除字符串中的所有相邻重复项|Python刷题笔记

LeetCode|Day8|1047. 删除字符串中的所有相邻重复项|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:1047. 删除字符串中的所有相邻重复项
难度:简单
题目链接:点击跳转


🧾 题目描述(简要)

给出由小写字母组成的字符串 s,请你删除字符串中 所有相邻重复项,返回最终的字符串。
你必须 每次删除两个相邻的相同字符,直到无法继续删除。

示例:

输入:s = "abbaca"
输出:"ca"
解释:
例如,输入字符串 "abbaca" ,经处理后得到 "ca" ,其中,"bb" 被删除,"aa" 被删除。

💡 解法:使用栈来存储字符

class Solution:def removeDuplicates(self, s: str) -> str:stack = []for char in s:if stack and stack[-1] == char:stack.pop()  # 遇到相同的字符就弹出栈顶字符else:stack.append(char)return ''.join(stack)

🧠 我的理解

  • 遇到相邻重复字符时,利用栈的特性,删除栈顶字符;
  • 如果栈顶字符与当前字符相同,则弹出栈顶,否则入栈;
  • 最后将栈中的字符连接成字符串输出;
  • 时间复杂度是 O(n),空间复杂度是 O(n),适用于此类问题。

📌 基础语法复习:

  • stack.append(char):将元素推入栈;
  • stack.pop():弹出栈顶元素;
  • stack[-1]:访问栈顶元素;
  • ''.join(stack):将栈中的字符连接成一个字符串。

📌 返回总目录:点我回目录

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

相关文章:

  • 基于YOLOv3-Tiny 的智能门铃的人体检测模型的实现(中)
  • PS2025最新稳定版下载安装详细图文教程(附安装包)
  • STM32 | HC-SR04 超声波传感器测距
  • 万丈高楼平地起:开发环境搭建与“Hello, World”
  • STM32中EXTI(外部中断)详解
  • Vue中的render()函数
  • word中多行合一功能实现
  • python基础知识pip配置pip.conf文件
  • Tableau破解安装
  • ROS2---NodeOptions
  • 数据预处理
  • 基于requests_html的爬虫实战
  • UE5多人MOBA+GAS 20、添加眩晕
  • 基于Flink的实时开发平台-Dinky
  • 基于Leaflet调用天地图在线API的多层级地名检索实战
  • LeetCode第 458 场周赛题解
  • 复习笔记 35
  • PHP语法高级篇(二):文件处理
  • c++ thread_local
  • Java求职面试:从Spring到微服务的全面挑战
  • 牛客周赛 Round 100
  • Android事件分发机制完整总结
  • CMSIS(Cortex Microcontroller Software Interface Standard)ARM公司为 Cortex-M 系列处理器
  • 互联网大厂Java面试:从Spring Boot到微服务的场景应用
  • 2024CVPR:Question Aware Vision Transformer for Multimodal Reasoning介绍
  • 考研复习-数据结构-第六章-图
  • RedisJSON 技术揭秘(五)`JSON.ARRPOP` 原子弹出 修改数组的终极手段
  • git实操
  • HTML 标题标签
  • 香港理工大学实验室定时预约