[leetcode] 1328. Break a Palindrome

网友投稿 240 2022-08-26

[leetcode] 1328. Break a Palindrome

Description

Given a palindromic string palindrome, replace exactly one character by any lowercase English letter so that the string becomes the lexicographically smallest possible string that isn’t a palindrome.

After doing so, return the final string. If there is no way to do so, return the empty string.

Example 1:

Input: palindrome = "abccba"Output: "aaccba"

Example 2:

Input: palindrome = "a"Output: ""

Constraints:

1 <= palindrome.length <= 1000palindrome consists of only lowercase English letters.

分析

题目的意思是:给定一个回文子串,然后改变一个字母使其不再构成回文子串。我没做出来,这道题技巧挺多的,比如把遍历到中间位置过程中第一个不等于a的位置变成a就行了;还有一种情况是全a的情况,这时候只需要把字符串最后一个变成b就行了;再就是如果只有一个字符的情况,直接返回空就行了。不要问我规律是怎么得来的,我也是看了答案,哈哈哈。

代码

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

参考文献

​​[LeetCode] [Java/C++/Python] Easy and Concise​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:年营销开支增百亿 京东“低利润率运营”!(项目营销费用占比)
下一篇:python 8皇后问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~