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

Leetcode 2957. Remove Adjacent Almost-Equal Characters

  • Leetcode 2957. Remove Adjacent Almost-Equal Characters
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2957. Remove Adjacent Almost-Equal Characters

1. 解题思路

这一题其实不是很想放上来的,因为其实真的很简单,但是我惊讶地发现当前提交的算法实现耗时都很高,都在3000ms以上,然后我这个只有38ms,就很懵逼……

我的思路一个贪婪算法,找到所有连续的almost equal的substring,他们所有的都必须要进行改变,而要改变一个长度为n的substring,所需要的最少变换次数就是 ⌊ n 2 ⌋ \lfloor \frac{n}{2} \rfloor 2n。由此,我们就可以直接得到答案了。

2. 代码实现

给出python代码实现如下:

class Solution:def removeAlmostEqualCharacters(self, word: str) -> int:ans, cnt = 0, 0pre = "."for ch in word:if abs(ord(ch) - ord(pre)) <= 1:cnt += 1else:ans += cnt // 2cnt = 1pre = chans += cnt // 2return ans

提交代码评测得到:耗时38ms,占用内存16.3MB。

http://www.lryc.cn/news/257891.html

相关文章:

  • 透析跳跃游戏
  • 贵州开放大学形成性考核 平时作业 参考试题
  • Leetcode 2962. Count Subarrays Where Max Element Appears at Least K Times
  • Mybatis XML 配置文件
  • CCF计算机软件能力认证202309-1坐标变换(其一)(C语言)
  • k8s 如何部署Mysql(史上最权威教程)?
  • 红队攻防实战之Redis-RCE集锦
  • 六级翻译之印章
  • PHP数据库操作实例 - 学生信息管理
  • 企业架构LB-服务器的负载均衡之LVS实现
  • Java程序设计基础 - 课程概述
  • 基于SpringBoot+Vue前后端分离的商城管理系统(Java毕业设计)
  • vue3中实现el-tree通过ctrl或shift批量选择节点并高亮展示
  • HarmonyOS 振动效果开发指导
  • 【ACM独立出版、确定的ISBN号】第三届密码学、网络安全和通信技术国际会议(CNSCT 2024)
  • Qt12.8
  • QT使用SQLite 超详细(增删改查、包括对大量数据快速存储和更新)
  • 基于Springboot+mybatis+mysql+jsp招聘网站
  • PHP介绍及安装
  • linux C++监听管道文件方式
  • 【Qt开发流程】之UI风格、预览及QPalette使用
  • 数组实现循环队列(增设队列大小size)
  • [BJDCTF2020]EzPHP 许多的特性
  • Ubuntu开机出现Welcome to emergency mode解决办法
  • Android 7.1 默认自拍镜像
  • 设计模式(二)-创建者模式(5)-建造者模式
  • 学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg
  • Java 22种设计模式详解
  • 代码随想录算法训练营第四十八天 _ 动态规划_198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。
  • 记录一下快速上手Springboot登录注册项目