题目链接: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 }