信仰1056
大小写切换
Time Limit: 1000 ms Memory Limit: 65535 kB
Description
小明虽然还没有上学,可妈妈很早就教了他很多东西了,数数,认字还有写英文字母他都会了!五岁生日那天妈妈告诉小明他可以玩家里的大电脑了,不过只能用来打字。小明知道,只要学会了打字,他就可以跟表姐一样用电脑跟外国人说话聊天了,这样还能跟科学家舅舅说话呢,所以小明很勤奋的熟悉着键盘,一个键一个键的问妈妈那是做什么的。
一个月后,小明可以看着那个接在电脑上的“电视”然后按照顺序打出“电视”上画出的英文字母了。小明的手不够大,所以按键盘上的键会很慢也很累。更让人讨厌的就是还要切换大小写!!!妈妈说键盘刚开始的时候是小写模式,这个时候打出来的字母是小写的,可是如果要打出大写字母的话就要换模式,方法就是按一下键盘上的CapsLock键,这样就可以打出大写的字母了。同样,在大写模式的时候按下CapsLock键就可以重新回到小写模式。
妈妈还说,如果不想换模式的话,还可以用shift键来改模式打字符,不过shift必须要和字母键同时按下去,这样就可以在小写模式下打大写字母、大写模式下打小写字母了。当然,放开了shift,打出的还是当前这个模式的字母。
每天妈妈都给了小明一些打字任务,小明只要在电脑上按照顺序打完这些字母就可以得到零花钱。对小明来说,用自己的小手按键盘是一件很累的事情,所以小明每打一个字母就会松开手指休息一下。为了最快的完成妈妈给定的打字任务,小明想知道他最少要按多少个键才能完成,你帮帮他吧!
Input
输入的第一行是T(不超过100)。T表示测试部分的个数,每一部分都要求单独计算并按照要求输出结果。每组数据为一行字符,其中只有大写和小写字母,每组数据的字符数不超过200。
Output
对于每个测试部分,请输出每个问题的正确答案。每组数据输出一行,并且只有一个整数,表示打完字符串所需的最少按键次数。
Sample Input
4
AAAAAA
aaaaaa
aaaAAA
AAAaaa
Sample Output
7
6
7
8
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int n,i; 6 char str[101][201]; 7 scanf("%d",&n); 8 int k; 9 k=n; 10 while(k--) 11 { 12 scanf("%s",str[k]); 13 } 14 while(n--) 15 { 16 int flag=0; 17 int count=0; 18 int len=strlen(str[n]); 19 for(i=0;i<len;i++) 20 { 21 if(str[n][i]>=97) 22 { 23 count++; 24 if(flag==1) 25 count++; 26 flag=0; 27 } 28 else 29 { 30 if(flag==1) 31 { 32 count=count+1; 33 flag=1; 34 } 35 else if(flag==0&&str[n][i+1]>=97) 36 { 37 count=count+2; 38 flag=0; 39 } 40 else 41 { 42 count=count+2; 43 flag=1; 44 } 45 } 46 } 47 printf("%d\n",count); 48 } 49 return 0; 50 }