题目链接
分析
模拟题
按照题意判断,是否为同一字母的大小写即可,可以直接加减 $32$ 进行判断
对于同一字母的大小写,ASCII 码末五位二进制是相同的,所以取出进行比较也可判断
代码实现
class Solution {
public:
int countKeyChanges(string s) {
int ans = 0;
for(int i = 1; i < s.size(); ++i)
ans += (s[i - 1] & 31) != (s[i] & 31);
return ans;
}
};
复杂度分析
- 时间复杂度:$O(n)$,$n$ 为字符串的长度
- 空间复杂度:$O(1)$