在 Python 中查找最长真棒子字符串的程序
假设我们有一个数字字符串s。正如我们所知,一个很棒的子串是s的一个非空子串,这样我们可以进行任意数量的交换以使其成为回文。我们必须找到s的最大长度awesome子串的长度。
因此,如果输入类似于s="4353526",那么输出将是5,因为"35352"是最长的真棒子字符串。我们可以制作“35253”回文。
示例
让我们看下面的实现来更好地理解
def solve(s):
n = 0
pos_map = {0:len(s)}
max_len = 1
for i in range(len(s)-1, -1, -1):
n = n ^ (1 << int(s[i]))
if n in pos_map:
max_len = max(max_len, pos_map[n]-i)
for j in range(10):
m = n ^ (1 << j)
if m in pos_map:
max_len = max(max_len, pos_map[m]-i)
if n not in pos_map:
pos_map[n] = i
return max_len
s = "4353526"
print(solve(s))输入
"4353526"输出结果
5
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下