LeetCode 3019.按键变更的次数:遍历(转小写)
【LetMeFly】3019.按键变更的次数:遍历(转小写)
力扣题目链接:https://leetcode.cn/problems/number-of-changing-keys/
给你一个下标从 0 开始的字符串 s
,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab"
表示按键变更一次,而 s = "bBBb"
不存在按键变更。
返回用户输入过程中按键变更的次数。
注意:shift
或 caps lock
等修饰键不计入按键变更,也就是说,如果用户先输入字母 'a'
然后输入字母 'A'
,不算作按键变更。
示例 1:
输入:s = "aAbBcC" 输出:2 解释: 从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift 。 从 s[1] = 'A' 到 s[2] = 'b',按键变更。 从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift 。 从 s[3] = 'B' 到 s[4] = 'c',按键变更。 从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift 。
示例 2:
输入:s = "AaAaAaaA" 输出:0 解释: 不存在按键变更,因为这个过程中只按下字母 'a' 和 'A' ,不需要进行按键变更。
提示:
1 <= s.length <= 100
s
仅由英文大写字母和小写字母组成。
解题方法:遍历
从第二个字符开始遍历字符串,如果当前字符串的小写和前一个字符的小写不相同,则答案数量加一。
- 时间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))
- 空间复杂度 O ( 1 ) O(1) O(1)
AC代码
C++
/*
* @Author: LetMeFly
* @Date: 2025-01-07 13:03:56
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-01-07 13:08:37
*/
class Solution {
public:
int countKeyChanges(string& s) {
int ans = 0;
for (int i = 1; i < s.size(); i++) {
ans += tolower(s[i]) != tolower(s[i - 1]);
}
return ans;
}
};
Python
'''
Author: LetMeFly
Date: 2025-01-07 13:09:14
LastEditors: LetMeFly.xyz
LastEditTime: 2025-01-07 13:09:43
'''
class Solution:
def countKeyChanges(self, s: str) -> int:
return sum(s[i].lower() != s[i - 1].lower() for i in range(1, len(s)))
Java
/*
* @Author: LetMeFly
* @Date: 2025-01-07 13:10:05
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-01-07 13:11:25
*/
class Solution {
public int countKeyChanges(String s) {
int ans = 0;
for (int i = 1; i < s.length(); i++) {
if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(i - 1))) {
ans++;
}
}
return ans;
}
}
Go
/*
* @Author: LetMeFly
* @Date: 2025-01-07 13:11:57
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2025-01-07 13:13:25
*/
package main
import "strings"
func countKeyChanges(s string) (ans int) {
for i := 1; i < len(s); i++ {
if strings.ToLower(string(s[i])) != strings.ToLower(string(s[i - 1])) {
ans++
}
}
return
}
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/144983704