pat 乙级1033 旧键盘打字(20)
生活随笔
收集整理的這篇文章主要介紹了
pat 乙级1033 旧键盘打字(20)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、
以及壞掉的那些鍵,打出的結果文字會是怎樣?輸入格式:輸入在2行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字
是不超過105個字符的串。可用的字符包括字母[a-z, A-Z]、數字0-9、以及下劃線“_”(代表空格)、“,”、“.”、“-”、“+”(代表上檔鍵)
,題目保證第2行輸入的文字串非空。注意:如果上檔鍵壞掉了,那么大寫的英文字母無法被打出。輸出格式:在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。
輸入樣例:7+IE.
7_This_is_a_test.輸出樣例:_hs_s_a_tst
代碼:
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h>char board[100001]; int Da[26]; int Xiao[26]; int digit[10]; int shangdang; int SD[3]; int _;int main() {gets(board);int stl = strlen(board);for(int i=0 ; i<stl ; i++){if(board[i]<='9' && board[i]>='0')digit[board[i] - '0'] = 1;else if(board[i]<='Z' && board[i]>='A'){Da[board[i] - 'A'] = 1;Xiao[board[i] - 'A'] = 1;}else if(board[i] == '+' || board[i] == '-' || board[i] == ',' || board[i] == '.'){if(board[i] == '+')shangdang = 1;else if(board[i] == '-')SD[0] = 1;else if(board[i] == ',')SD[1] = 1;else SD[2] = 1;}else _ = 1;}scanf("%s",board);stl = strlen(board);for(int i=0 ; i<stl ; i++){if(board[i]<='9' && board[i]>='0'){if(digit[board[i] - '0'] == 0)printf("%c",board[i]);}else if(board[i]<='Z' && board[i]>='A'){if(Da[board[i] - 'A'] == 0 && shangdang == 0)printf("%c",board[i]);}else if(board[i]<='z' && board[i]>='a'){if(Xiao[board[i] - 'a'] == 0)printf("%c",board[i]);}else if(board[i] == '_'){if(_ == 0)printf("%c",board[i]);}else if(board[i] == '-' && SD[0] == 0)printf("%c",board[i]);else if(board[i] == ',' && SD[1] == 0)printf("%c",board[i]);else if(board[i] == '.' && SD[2] == 0)printf("%c",board[i]);}return 0; }轉載于:https://www.cnblogs.com/vocaloid01/p/9514295.html
總結
以上是生活随笔為你收集整理的pat 乙级1033 旧键盘打字(20)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Activiti 流程启动及节点流转源
- 下一篇: [JSOI2007]文本生成器