LA 3213 古老的密码

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=15&page=show_problem&problem=1214

题意:

给定两个字符串,通过交换位置和一一映射判断能否使得两个字符串相同。

思路:

这题训练指南说得不准确,没有说到交换位置这一条件。既然可以交换位置,那我们只需要统计每个字符串中每个字母出现的次数,只要两个字符串中字母数相同并且出现次数也相同那就一定能转换成功。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<string>
 4 #include<cstring>
 5 using namespace std;
 6
 7 char s1[105], s2[105];
 8 int p1[26], p2[26];
 9
10 int main()
11 {
12     ios::sync_with_stdio(false);
13     //freopen("D:\\txt.txt", "r", stdin);
14     while (cin >> s1)
15     {
16         cin >> s2;
17         int len1 = strlen(s1);
18         int len2 = strlen(s2);
19         memset(p1, 0, sizeof(p1));
20         memset(p2, 0, sizeof(p2));
21         for (int i = 0; i < len1; i++)
22             p1[s1[i] - ‘A‘]++;
23         for (int i = 0; i < len2; i++)
24             p2[s2[i] - ‘A‘]++;
25         sort(p1, p1 + 26);
26         sort(p2, p2 + 26);
27         int flag = 1;
28         for (int i = 0; i < 26;i++)
29         if (p1[i] != p2[i])
30         {
31             flag = 0;
32             break;
33         }
34         if (flag)  cout << "YES" << endl;
35         else cout << "NO" << endl;
36     }
37 }
时间: 2024-11-12 15:55:50

LA 3213 古老的密码的相关文章

4_1 古老的密码(UVa1339)

Ancient Roman empire had a strong government system with various departments, including a secret service department. Important documents were sent between provinces and the capital in encrypted form to prevent eavesdropping. The most popular ciphers

LA 3213 Ancient Cipher

开始我理解错题意了,应该是这样理解的: 字符串1进行映射后可以做一个置换,若置换后与字符串2相同,也是输出YES的 比如ABCA 和 DDEF 因此我们需要做的就是统计有多少类字母,每一类有多少个,如果相同的话,两个字符串一定是对应的 1 //#define LOCAL 2 #include <algorithm> 3 #include <cstdio> 4 #include <cstring> 5 using namespace std; 6 7 char s1[20

UVa 1339 Ancient Cipher【排序】

/* 中文题目      古老的密码 中文翻译-大意  给你两个字符串,看你能不能将第一个字符变化位置(重排),变成和第二个字符串的26个字母一一对应. 解题思路:将两个字符串的各个字符的数量统计出来,如果各个字符串的数量都是一样的,那么就输出yes,否则输出no 难点详解:在统计每个字符出现的次数有点小难度 关键点:排序 解题人:lingnichong 解题时间:2014/08/26    00:36 解题体会:很好的一题 */ 1339 - Ancient Cipher Time limit

算法练习(一)

昨天是个值得纪念的日子,我数学建模拿了推荐国家一等奖的名额,希望最后能顺利拿到国一吧.现在大三已经开学一个月了.这一个月因为社会实践评优的事情真的很忙,还好最后拿到了可能拿到的所有的奖项.结果自己把科研助手这件事给耽误了,今天去找马老师,结果马老师的实验室人已经满了.所以没办法,我可能又要去找其他老师了. 今年国家奖学金的名额里面没有我,没有就算了吧.卧薪尝胆,好好学习,这一学期至关重要.所以自己现在就要开始准备保研的机试,现在的训练非常重要,无论如何,这是自己未来要走的一步路.我现在最重要的就

linux 配置 Apache mysql php最新版

第一部分:安装mysql 官方下载 mysql5.6.19 64位的rpm格式文件 0.rpm 四个mysql5.6.19 卸载默认的mysql yum -y remove mysql-libs-* yum -y remove mysql-libs-5.1.52* 1.su命令2./etc/init.d/mysql start 开启mysql3.mysql -uroot -p 出现错误:ERROR 1045 (28000): Access denied for user 'root'@'loca

算法竞赛入门经典 第四章

[√ ] UVA1339 古老的密码 Ancient Cipher [√ ] UVA489 刽子手的游戏 Hangman Judge [√ ] UVA133 救济金发放 The Dole Queue [√ ] UVA213 信息解码 Message Decoding [√ ] UVA512 追踪电子表格中的单元格 Spreadsheet Tracking [√ ] UVA12412 师兄帮帮忙 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)

[转]加盐hash保存密码的正确方式

0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做. 0x01 重要提醒

如何安全的存储用户的密码

大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.如果你还在存储用户密码的MD5,那可真的有点弱了.赶紧来看看这篇文章吧. 保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对

SSH KEY免密码验证

For mac os install ssh-copy-id: brew install ssh-copy-id For Linux install ssh-copy-id yum install openssh* STEP: 1: 生成SSH公钥 [[email protected] ~]# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.