c语言写代码:有两个长度相同的字符串,均由字母A-Z构成,长度不超过100。请判断是否可以把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同。输入 两行字符串。 输出 若可以请输出两行,第一行为YES,第二行为对应的一个映射。否则输出NO。
时间: 2024-05-27 19:12:49 浏览: 8
可以使用计数排序的思想解决这个问题。先统计两个字符串中每个字母出现的次数,若两个字符串每个字母出现次数完全相同,则可以通过重排实现映射,输出YES和对应的一一映射;否则输出NO。
以下是C语言代码实现:
#include <stdio.h>
#include <string.h>
int main()
{
char s1[101], s2[101];
int count1[26] = {0}, count2[26] = {0};
int i, j, flag = 1;
scanf("%s%s", s1, s2);
if (strlen(s1) != strlen(s2)) {
printf("NO\n");
return 0;
}
for (i = 0; i < strlen(s1); i++) {
count1[s1[i] - 'A']++;
count2[s2[i] - 'A']++;
}
for (i = 0; i < 26; i++) {
if (count1[i] != count2[i]) {
flag = 0;
break;
}
}
if (flag) {
printf("YES\n");
for (i = 0; i < 26; i++) {
if (count1[i] > 0) {
printf("%c-%c\n", i + 'A', i + 'A');
count1[i]--;
}
for (j = 0; j < count1[i]; j++) {
printf("%c-%c\n", i + 'A', i + j + 1 + 'A');
}
}
} else {
printf("NO\n");
}
return 0;
}
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)