HDU 2577 How to Type
来源:互联网 发布:呼叫中心的网络构架 编辑:程序博客网 时间:2024/05/29 11:36
题目内容
题意:就是给你一个字符串,求出按键盘最少的次数是多少
有Caps Lock和Shift两种转换大小写输入的方式
我是用模拟的方法把所有的情况都列出,用这种方法可能的情况较多注意不要漏掉情况。
这个问题也可以用DP来解,下面这是别人的比较好的DP解法
DP解法
我的代码:
#include<stdio.h>#include<string.h>int main(){ int t; scanf("%d",&t);getchar(); while(t--) { char a[105]; int i,j,len,sum=0,flag=0; gets(a); len=strlen(a); for(i=0;i<len;i++) { if(flag==0&&(a[i]>='A'&&a[i]<='Z'&&(a[i+1]>='a'&&a[i+1]<='z'||i==len-1))) sum+=2; else if(flag==0&&a[i]>='a'&&a[i]<='z') { sum+=1; flag=0; } else if(flag==0&&a[i]>='A'&&a[i]<='Z'&&a[i+1]>='A'&&a[i+1]<='Z') { sum+=3; flag=1; } else if(flag==1&&a[i]>='A'&&a[i]<='Z') sum+=1; else if(flag==1&&a[i]>='a'&&a[i]<='z'&&a[i+1]>='A'&&a[i+1]<='Z') sum+=2; else if(flag==1&&a[i]>='a'&&a[i]<='z'&&a[i+1]>='a'&&a[i+1]<='z') { sum+=1; flag=0; } else if(flag==1&&a[i]>='a'&&a[i]<='z'&&i==len-1) sum+=1; } printf("%d\n",sum); } return 0;}
阅读全文
0 0
- hdu 2577 How to Type
- HDU-2577-How to Type
- HDU 2577 how to type
- HDU 2577 How to Type
- hdu 2577 How to Type
- Hdu 2577 How to Type
- HDU 2577 how to type
- hdu 2577 How to Type
- hdu 2577 How to Type
- HDU 2577 How to Type
- hdu 2577 How to Type
- HDU - 2577 How to Type
- hdu 2577 How to Type
- HDU - 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- 设计模式---第二章观察者模式
- 关于使用eclipse自带的maven插件以及使用自己安装maven插件
- centOS ssh登录缓慢解决
- MFC_菜单的编写及应用
- redis del大key可能带来的风险
- HDU 2577 How to Type
- SDUT-树-堆结构练习——合并果子之哈夫曼树
- 油田信息化:通往智慧之路(0--目录)
- 平时收集的一些有关UED的团队和个人博客
- mysql插入一条记录,删除一条记录
- 页面预览上传文件的内容
- HDU1326 Box of Bricks
- java字符串“”在js中为"\"\""
- ORACLE Scheduler特性(4)创建和管理Schedule