查找通过从Python中的字符串中去除或改组字符形成的最长回文
假设我们有一个字符串;我们必须找到可以通过删除或改组字符串中的字符来生成的最长回文。如果回文不止一个,则只返回一个。
因此,如果输入类似于pqqprrs,则输出将为pqrsrqp。
为了解决这个问题,我们将遵循以下步骤-
count:=大小为256的数组,填充为0
对于范围在0到字符串大小之间的i,执行
count[ASCIIof(string[i])]:=count[ASCIIof(string[i])]+1
开始:=空白字符串,中:=空白字符串,结束:=空白字符串
字符:=('a')的ASCII
而字符<=ASCII的('z'),做
对于范围为0的i进行计数[字符]/2(整数除法),请执行
开始:=开始+来自(字符)的字符
中:=字符
count[character]:=count[character]-1
字符:=字符-1
如果count[character]AND1非零,则
除此以外,
字符:=字符+1
结束:=开始
结束:=结束
从(中间)连接结束返回开始连接字符
示例
让我们看下面的实现以更好地理解-
def get_palindrome(string):
count = [0]*256
for i in range(len(string)):
count[ord(string[i])] += 1
begin = ""
mid = ""
end = ""
character = ord('a')
while character <= ord('z'):
if (count[character] & 1):
mid = character
count[character] -= 1
character -= 1
else:
for i in range(count[character]//2):
begin += chr(character)
character += 1
end = begin
end = end[::-1]
return begin + chr(mid) + end
string = "pqqprrs"
print(get_palindrome(string))输入值
"pqqprrs"
输出结果
pqrsrqp
热门推荐
5 初八祝福语简短语
10 红颜生日祝福语简短独特
11 周末祝福语简短的英语
12 婆婆生日祝福语短语简短
13 形容新年的祝福语简短
14 送给老师中秋祝福语简短
15 空军大学开学祝福语简短
16 团队文案祝福语简短励志
17 周末祝福语正能量简短
18 高考送考祝福语简短