本文主要是介绍例题4-1 古老的密码(Ancient Cipher,NEERC 2004,UVa1339),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:https://vjudge.net/problem/UVA-1339
分类:函数
备注:思维
分析:因为每种字母可以映射的字母不受限制,那么可以映射的字母出现的次数要相同即可,在两个字符串中都有相对应的字母出现的次数相同就能达到题目条件。
作者把此题列出来的一个重要应该是为了让我们见识一下函数作为函数参数吧。毕竟本章是讲函数和递归。
代码如下:按作者的意思来
#include<stdio.h>
#include<stdlib.h>//qsort的头文件
#include<string.h>
int cmp(const void* a, const void* b)//比较函数的写法
{return *(int*)a - *(int*)b;
}
int main(void)
{char s1[105], s2[105];while (scanf("%s%s", s1, s2) == 2){int cnt1[26] = { 0 }, cnt2[26] = { 0 };int len = strlen(s1), flag = 1;for (int i = 0; i < len; i++)cnt1[s1[i] - 'A']++, cnt2[s2[i] - 'A']++;qsort(cnt1, 26, sizeof(int), cmp);//void qsort(void *base, sieze_t num, size_t size, int(*comparator)(const void* ,const void*) );qsort(cnt2, 26, sizeof(int), cmp);// 数组名字 数组大小 单位长度 比较函数for (int i = 0; i < 26; i++)if (cnt1[i] != cnt2[i]) { flag = 0; break; }if (flag)printf("YES\n");else printf("NO\n");}return 0;
}
这篇关于例题4-1 古老的密码(Ancient Cipher,NEERC 2004,UVa1339)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!