1033 旧键盘打字(认真审题,考虑各种情况)

    技术2023-07-05  83

    #include<stdio.h> #define M 100009 int cha[41]={}; char lost[M],str[M]; int f(char c) { if(c>='0'&&c<='9') return c-48; if(c>='a'&&c<='z') return c-87; if(c>='A'&&c<='Z') return c-55; if(c=='_') return 36; if(c==',') return 37; if(c=='.') return 38; if(c=='-') return 39; return 40; } int main() { gets(lost); gets(str); int i,j=0; for(i=0;lost[i];i++) cha[f(lost[i])]=1; for(i=0;str[i];i++) if(cha[f(str[i])]==0) { if(str[i]>='A'&&str[i]<='Z'&&cha[40]==1) continue; else printf("%c",str[i]); } printf("\n"); return 0; }

    就在那句“题目保证第 2 行输入的文字串非空。” 但是没说第一行字符串一定非空 因此要考虑第一行输入回车的情况

    Processed: 0.012, SQL: 9