题目描述
Sumo家的猫非常喜欢滚键盘,每次Sumo开着电脑离开一小会儿,回来的时候都能在屏幕上看到一串神秘代码。今天,Sumo又得到了这么一串神秘代码。当他盯着屏幕上这串东西沉思的时候,突然发现它只包含大小写英文字母,又想到自己的键盘这几天两个Shift键都坏掉了——也就是说只能通过CAPSLOCK键来切换英文大小写了。于是他很好奇,这次滚键盘的过程中,他家的猫至少摁了几次CAPSLOCK键呢?Sumo记得他刚离开的时候,键盘的大写锁定是开的(也就是说输的是大写字母)。
输入描述:
仅包含一个字符串,表示Sumo家的猫摁出的神秘代码。输入保证字符串仅包含大小写英文字母,且长度不超过105。
输出描述:
仅一个整数,表示这次滚键盘的过程中,Sumo家的猫摁CAPSLOCK键的最少次数。
示例1
输入
ZUCCAcmLab
输出
3
示例2
输入
MEOWMEOWMEOWGiveMeCatFoodMEOWMEOWMEOW
输出
8
思路:此题要注意最初是大写,所以先判断字符串的首字母,再将后面的字母与它前一字母比较是否发生大小写转换。
以下是代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
int ans=0;
int len=s.length();
if(s[0]>='a'&&s[0]<='z')
ans++;
for(int i=1;i<len;i++)
{
if(s[i]>='a'&&s[i]<='z')
if(s[i-1]>='A'&&s[i-1]<='Z')
ans++;
if(s[i]>='A'&&s[i]<='Z')
if(s[i-1]>='a'&&s[i-1]<='z')
ans++;
}
cout<<ans<<endl;
}
希望对你们有帮助