用于查找在 Python 中使字符串半单调所需的更新次数的程序
假设我们有一个长度为偶数的小写字符串s。我们必须找到需要更新的最小字符数,以便所有i都满足以下三个条件之一,其中0≤i<n/2和j,n/2≤j<n-
s[i]>s[j]
s[i]<s[j]
s[i]==s[j]
所以,如果输入像s="pppxxp",那么输出将是1因为如果我们把最后一个"p"改为"x",那么这可以满足条件s[i]<s[j]
示例
让我们看看以下实现以获得更好的理解-
from collections import Counter
from string import ascii_lowercase
def solve(s):
n = len(s)
left = Counter(s[: n >> 1])
right = Counter(s[n >> 1 :])
ans = n
for pivot in ascii_lowercase:
ans = min(ans, n - left[pivot] - right[pivot])
good = sum(left[c] for c in left if c <= pivot)
good += sum(right[c] for c in right if c > pivot)
ans = min(ans, n - good)
good = sum(left[c] for c in left if c > pivot)
good += sum(right[c] for c in right if c <= pivot)
ans = min(ans, n - good)
return ans
s = "pppxxp"
print(solve(s))输入
"pppxxp"输出结果
1
热门推荐
10 提早庆祝生日祝福语简短
11 参加婚礼祝福语大全简短
12 六一祝福语简短感动女生
13 双节祝福语简短唯美
14 工厂祝福语简短的句子
15 对女友的简短祝福语
16 官宣新年祝福语简短
17 最搞笑生日祝福语简短
18 别人生辰祝福语简短