#刷题 2.打字

                           打字

时间限制: 1000MS 内存限制: 65536KB 题目描述: 小明很喜欢打字,今天小红给了小明一个字符串。

这个字符串只包含大写和小写字母。

我们知道,按下CapsLock键,可以切换大小写模式。

我们在小写模式时候,同时按下shift+字母键,就能写出大写字母。

在大写模式的时候,按下shift+字母键,就能写出小写字母。

现在问题来了,给你一个字符串,问你最少使用多少个按键,就可以写出这个字符串呢?

注意,按shift和字母键,算两次按键。开始时均为小写状态。

输入描述

第一行一个T,表示有T组输入。

接下来T组数据:

每组数据一个字符串s,s的长度小于等于100。仅包含大小写字母。

输出描述
对于每组数据,输出最少按键次数。

样例输入

3
A
AA
AAAAAA

样例输出

2
3
7

#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  cin>>n;
  for(int i = 0; i < n; i++){
    string str;
    cin>>str;
    int count = 0;
    for(int j = 0; j < str.size(); j++){
      int num = (int)str[j];
      if(num >= 65 && num <= 90){
        //这个相当于为大写字母 要shift
        if(j==0){
          count++;//刚开始默认要++
        }else if((int)str[j-1] > 90){
          //前一个数小写也得多加++;
          count++;
          }
        count++;
      }
    }
    cout<<count<<endl;
  }
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值