[ CodeVS冲杯之路 ] P1171
不充钱,你怎么AC?
题目:http://codevs.cn/problem/1171/
代码调了很久才调好啊,一开始题目都看错了(要是真的NOIP肯定没戏了QuQ)
后面发现CodeVS上的数据输入最后是没有回车的,导致WA烂啊……
给你两个串,它们每个字母有一一对应的关系,如果遇到不同字母对应相同的就 Failed
或者相同字母对应不同字母也 Failed,如果最后 'A'-'Z' 其中有没有对应的还是 Failed
直接开 255 的数组,(其实也可以只开26个)相当于 26 个关键字的哈希
双判重后检测是否每个字母都有对应
最后按照对应输出
#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #define NA {printf("Failed\n");return 0;} using namespace std; char d[255],s[255],a[255],v[255]; bool f[255]; int main() { char c; int i,len,j=0; scanf("%s\n",s); len=strlen(s); for (i=0;i<len;i++) { c=getchar(); if (d[s[i]]!='\0'&&d[s[i]]!=c) NA else d[s[i]]=c; } for (i='A';i<='Z';i++) if (d[i]=='\0'||f[d[i]]) NA else f[d[i]]=1; getchar(); scanf("%s",v); i=0; while (v[i]>='A'&&v[i]<='Z') { if (d[v[i]]!='\0') a[++j]=d[v[i]]; else NA i++; } for (i=1;i<=j;i++) printf("%c",a[i]); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步