1 条题解
-
1
#include<stdio.h> #include<string.h> int main(){ char arr[1000],brr[1000],crr[1000]; scanf("%s %s %s",arr,brr,crr); int l=strlen(arr); int m=0; for(int i=0;i<l;i++) { for(int j=0;j<l;j++) { if(arr[i]==arr[j]&&brr[i]!=brr[j]) { m=1; } } } //判断是否有同一个字符可以转换为不同字符导致产生矛盾,比如A既可以代表B又可以代表C。如果矛盾m=1; int h[26]={0}; int l2=strlen(crr); char orr[26]={'A','B','C','D','E','F','G','H','I','J','K','L','N','M','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; for(int i=0;i<26;i++) { for(int j=0;j<l;j++) { if(orr[i]==brr[j]) { h[i]=1; break; } } } //判断我们给的字符是否可以包含26给字母。 int s=0; for(int i=0;i<26;i++) { if(h[i]==0) { s=1; } } //如果发现不包含那s=1; //当满足2个条件进行转换 if(m==0&&s==0) { for(int i=0;i<l2;i++) { for(int j=0;j<l;j++) { if(crr[i]==arr[j]) { printf("%c",brr[j]); break; } } } } else { printf("Failed"); } return 0; }
- 1
信息
- ID
- 279
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 285
- 已通过
- 26
- 上传者