c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~