码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode1328

时间:2020-01-26 10:23:29      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:div   code   dex   leetcode   文字   elf   回文字符串   rom   思路   

 1 class Solution:
 2     def breakPalindrome(self, palindrome: str) -> str:
 3         n = len(palindrome)
 4         if n <= 1:
 5             return ‘‘
 6         half = n // 2
 7         sub = palindrome[0:half]#不包含index==half的字符
 8         
 9         for i in range(len(sub)):
10             c = palindrome[i]
11             if ord(c) > ord(a):
12                 palindrome = palindrome[0:i] + a + palindrome[i+1:]
13                 return palindrome
14         begin = half if n % 2 == 0 else (half + 1)
15         for j in range(n-1,begin-1,-1):
16             c = palindrome[j]
17             if ord(c) < ord(z):
18                 palindrome = palindrome[0:j] + chr(ord(c) + 1) + palindrome[j+1:]
19                 return palindrome
20         return ‘‘

算法类型:字符串处理。

思路分析:将回文字符串分为前后两个部分,

1先遍历前半部分:将第一个大于‘a‘的字符转变为a;

如果前半部分没有找到,则将遍历后半部分:将最后一个小于‘z‘的字符转变为字符+1。

如果两个部分都没有合适的值,则返回空。

 

leetcode1328

标签:div   code   dex   leetcode   文字   elf   回文字符串   rom   思路   

原文地址:https://www.cnblogs.com/asenyang/p/12233707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!