def min_changes(s: str) -> int: n = len(s) upper_count = [0] * (n + 1) lower_count = [0] * (n + 1) for i in range(1, n + 1): upper_count[i] = upper_count[i - 1] + (s[i - 1].islower()) lower_count[i] = lower_count[i - 1] + (s[i - 1].isupper()) ans = float('inf') for i in range(n + 1): ans = min(ans, upper_count[i] + lower_count[n] - lower_count[i]) return ans
时间: 2024-02-12 21:05:52 浏览: 34
这是一个 Python 函数,接受一个字符串参数 s,并返回一个整型值。该函数的作用是计算将字符串 s 中的字母大小写转换次数的最小值。函数首先定义了两个长度为 n+1 的数组 upper_count 和 lower_count,其中 n 为字符串 s 的长度。这两个数组分别记录了 s 的前缀中小写字母和大写字母的数量。然后,函数遍历 0 到 n 的所有可能的位置 i,计算将 s 中前 i 个字符中的大写字母转换为小写字母以及将 s 中后 n-i 个字符中的小写字母转换为大写字母所需的次数之和,并选取这些值中的最小值作为答案。最后,函数返回答案。
这个函数与上一个函数的主要区别是在计算前缀中小写字母和大写字母的数量时,使用了 s[i - 1].islower() 和 s[i - 1].isupper() 来判断是否为小写字母和大写字母,而不是使用三目运算符。此外,计算后缀中小写字母和大写字母的数量时直接使用了 lower_count[n],而不是使用 n - i - upper_count[n]。这些修改使得代码更加简洁易懂。
以下是改写后的代码:
```python
def min_case_change(s: str) -> int:
n = len(s)
upper_count = [0] * (n + 1)
lower_count = [0] * (n + 1)
for i in range(1, n + 1):
upper_count[i] = upper_count[i - 1] + s[i - 1].islower()
lower_count[i] = lower_count[i - 1] + s[i - 1].isupper()
ans = float("inf")
for i in range(n + 1):
count = upper_count[i] + lower_count[n] - lower_count[i]
ans = min(ans, count)
return ans
```
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)