当前位置: 代码迷 >> 综合 >> POJ 2159 Ancient Cipher(古老的密码)
  详细解决方案

POJ 2159 Ancient Cipher(古老的密码)

热度:29   发布时间:2023-12-08 11:24:15.0

题目链接:POJ 2159

也是UVA 1339

题意:

给定两个长度相同且不超过100的字符串,判断能否把其中一个字符串的各个字符重排,然后对26个字母做一个一一映射,使得两个字符串相同。

思路:

字符的位置不重要,重要的是出现次数。先统计两个字符各个字符出现的次数,得到两个数组。由于映射的规则不是固定的,那么只要这两个数组排序后的结果相同,那么输入的两个字符串就可以通过重排和一一映射变得相同。

#include <stdio.h>
#include <string.h>
#define maxn 110
char s1[maxn], s2[maxn];
int a1[27], a2[27],len,i,flag,t;
void sorta(int a[], int len)
{int k;for (int i = 0;i < len-1;i++) {k = i;for (int j = i