Sumo and Keyboard-Cat(题解)

题目描述
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;  
 } 

希望对你们有帮助

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值