1084. Broken Keyboard (20)-水题
2017-02-11 22:20
260 查看
#include <iostream> #include <cstdio> #include <string.h> #include <algorithm> using namespace std; const int maxn=90; char str1[maxn]; char str2[maxn]; int vis[37]; int main() { scanf("%s %s",str1,str2); memset(vis,0,sizeof(vis)); int len1=strlen(str1),len2=strlen(str2); for(int i=0;i<len1;i++){ if('a'<=str1[i] && str1[i]<='z'){ vis[str1[i]-'a']=1; } else if('A'<=str1[i] && str1[i]<='Z'){ vis[str1[i]-'A']=1; //傻了,之前写成str1[i]-'A'+'a' .... str1[i]=str1[i]-'A'+'a';//转化成小写,方便后续操作 } else if(str1[i]=='_'){ vis[26]=1; //'_' } else{ vis[str1[i]-'0'+27]=1; //0~9 } } for(int i=0;i<len2;i++){ if('a'<=str2[i] && str2[i]<='z'){ vis[str2[i]-'a']=2; } else if('A'<=str2[i] && str2[i]<='Z'){ vis[str2[i]-'A']=2; } else if(str2[i]=='_'){ //if里面一开始少写了个=。。。导致WA。。。 vis[26]=2; //'_' } else{ vis[str2[i]-'0'+27]=2; } } //要按照在str1中的顺序输出,并且是以大写字母的形式 for(int i=0;i<len1;i++){ if(str1[i]=='_'){ if(vis[26]==1){ printf("_"); vis[26]=0;//输过一次就不需要再输出了 } } else if('a'<=str1[i] && str1[i]<='z'){ if(vis[str1[i]-'a']==1){ printf("%c",str1[i]-'a'+'A'); vis[str1[i]-'a']=0; } } else{ if(vis[str1[i]-'0'+27]==1){ printf("%c",str1[i]); vis[str1[i]-'0'+27]=0; } } } return 0; }
View Code
相关文章推荐
- PAT甲题题解-1104. Sum of Number Segments (20)-(水题)
- PAT甲题题解-1041. Be Unique (20)-水题
- LeetCode-20-Valid-Parentheses 栈 水题 Python 列表删除操作
- 1005. Spell It Right (20)水题
- 2018_1_20_quicksum,poj3094,水题
- PAT甲题题解-1050. String Subtraction (20)-水题
- PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。
- PAT甲题题解-1120. Friend Numbers (20)-水题
- 到底买不买(20)----暴力水题
- HDU 4505 小Q系列故事——电梯里的爱情 (水题)
- Hduoj1267 【数学】【水题】
- 20 个简化开发任务的 JavaScript 库
- SGU101 欧拉回路 弱智水题
- 1014. 福尔摩斯的约会 (20)
- 7-4 求幂级数展开的部分和(20 分)
- 细数手机诞生40年来20大销量最好的手机
- Best Cow Line - POJ 3617 水题
- hdu2594Simpsons’ Hidden Talents kmp水题
- CodeForces 589I Lottery (暴力,水题)
- 1013. 数素数 (20)