hdu2577_键入字母

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577

题意:用键盘输入一个字符串(只包含大小写字母),问最少按键的次数是多少?

注意按下cap lock键后,按shift + 小写字母也是可以的

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cstdlib>
 6 #include <cmath>
 7 #include <set>
 8 #include <map>
 9 #include <vector>
10 using namespace std;
11 
12 int main()
13 {
14     int t;
15     char s[110];
16     scanf("%d", &t);
17     while(t--)
18     {
19         scanf("%s", s);
20         int len = strlen(s);
21         int flag = 0, res = 0;
22         for(int i = 0; i < len; i++)
23         {
24             if(s[i] >= 'A' && s[i] <= 'Z')
25             {
26                 if(flag)
27                     res++;
28                 else
29                 {
30                     if(s[i + 1] >= 'A' && s[i + 1] <= 'Z')
31                     {
32                         res += 3;
33                         flag = 1;
34                     }
35                     else
36                         res += 2;
37                 }
38             }
39             else
40             {
41                 if(flag)
42                 {
43                     if(s[i + 1] >= 'A' && s[i + 1] <= 'Z')
44                         res += 2;
45                     else
46                     {
47                         flag = 0;
48                         res++;
49                     }
50                 }
51                 else
52                     res++;                
53             }
54         }
55         printf("%d
", res);
56     }
57     return 0;
58 }
原文地址:https://www.cnblogs.com/luomi/p/5546513.html