Leetcode::3019. 按键变更的次数

给你一个下标从0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab" 表示按键变更一次,而 s = "bBBb" 不存在按键变更。

返回用户输入过程中按键变更的次数。

注意: shiftcaps 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' ,不需要进行按键变更。
cpp 复制代码
class Solution {
public:
    int countKeyChanges(string s) {
        
        int k=0;
        for(int i=1;i<s.size();i++)
        {
            if(((s[i-1]-s[i])+32)%32!=0)
            {
                k++;
            }
        }

        return k;
    }
};
相关推荐
程序员爱钓鱼15 分钟前
循环语句:for、range -《Go语言实战指南》
java·数据结构·算法
LabVIEW开发1 小时前
LabVIEW中算法开发的系统化解决方案与优化
算法·labview
chenyuhao20241 小时前
链表面试题7之相交链表
数据结构·算法·链表·面试·c#
Pluchon1 小时前
硅基计划2.0 学习总结 壹 Java初阶
java·开发语言·学习·算法
仙人掌_lz1 小时前
理解多智能体深度确定性策略梯度MADDPG算法:基于python从零实现
python·算法·强化学习·策略梯度·rl
是代码侠呀2 小时前
从前端视角看网络协议的演进
leetcode·开源·github·github star·github 加星
C_Liu_2 小时前
C语言:深入理解指针(3)
c语言·数据结构·算法
xindafu3 小时前
代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
算法·动态规划
刃神太酷啦4 小时前
类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
java·c语言·c++·git·算法·leetcode·github
I AM_SUN5 小时前
994. 腐烂的橘子
数据结构·c++·算法·leetcode·职场和发展