LeetCode解题 Day23

1328. Break a Palindrome

https://leetcode.com/problems/break-a-palindrome/


题目解释

你会得到一个字串palindrome,该字串全是小写字母且是回文

请在替换一个英文字母的情况把回文破坏掉,回传字典顺序最小的那组答案

如果替换一个英文字母没办法破坏回文的话,就回传空字串

example

https://i.imgur.com/ZMRbnWB.png


解法

这题因为「替换掉一个英文字母」、「回传字典顺序最小的那组」的两个条件,让这题变得比较单纯了点

首先,他的限制已经有说明所有的输入都是回文,那就代表我们随便改一个字都能破坏回文,不过为了要符合题目的条件,我们要把任一个字母改成'a'才能符合「回传字典顺序最小的那组」

那我们就检查前半部哪个的字母不是'a'就好;如果前半部全都是'a',就把最後一个字改成'b'

程序码

class Solution:
    def breakPalindrome(self, palindrome: str) -> str:
        
        if len(palindrome) == 1: return ''
        
        for i in range(len(palindrome) // 2):
            if palindrome[i] != 'a':
                return palindrome[:i] + 'a' + palindrome[i+1:]
        
        return palindrome[:-1] + 'b' 

<<:  捉鳖神技 - 如何逆推使用者意图 (实作篇)

>>:  D23 - 如何用 Apps Script 自动化地创造与客制 Google Slides?(四)一次抓出所有简报中的「特定文字」与备注

Day 25路由

前言 路由简单来说就是连接介面的桥梁,而这个桥梁就叫做Navigator,就是导航的意思,用於管理进...

改变的三面向

早起运动Day7 - 关於改变的秘密​ ​ 「他就是这样,很难改变。」​ 这两天在看《内在动机》《被...

C# .Net 使用 ADO.NET 连接资料库

什麽是 ADO.NET ADO.NET 是微软针对 .NET 平台所提供的负责资料存取的类别程序库,...

Day 20 | 3D蛇走迷宫AR游戏开发Part1 场景放置、平面侦测

目录 游戏机制 FBX档汇入设定 建模放置、布置场景 侦测平面手动放置场景物件 游戏机制 侦测到平...

突破自我设限

前言 今天聊「突破自我设限」,经过前面 20 几天,多数概念已经建构得差不多,是该来总览与整合。有时...