• 信仰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

     
    电子科大OJ上的题,改了两次了,感觉没什么错啊,就是不能AC,为什么?
     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
    ",count);
    48     }
    49     return 0;
    50 }
    View Code
  • 相关阅读:
    [Leetcode 56] 55 Jump Game
    [Leetcode 57] 61 Rotate List
    [Leetcode 61] 73 Set Matrix Zeros
    [Leetcode 62] 74 Search a 2D Matrix
    [Leetcode 64] 78 Subsets
    [Leetcode 63] 77 Combinations
    [Leetcode 58] 63 Unique Path II
    python学习笔记第1章节 基础知识
    python学习笔记第2章节 分支,循环,还有条件
    visual studio 2008 试用版评估期已结束的解决方法(转载)
  • 原文地址:https://www.cnblogs.com/zou20134585/p/3473960.html
Copyright © 2020-2023  润新知