3019 按键变更的次数

·   ·   ·   ·

  ·   ·


题目链接

3019. 按键变更的次数

分析

模拟题

按照题意判断,是否为同一字母的大小写即可,可以直接加减 $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)$