uvalive 3213 Ancient Cipher

题目:给定两个只含大写字母的等长字符串,问两者之间是否存在一一映射

分析:考察一一映射的概念,将两个字符串分别作字母统计,再按字母出现个递增的顺序排序(排列的是每个字母出现的个数),如果排序后结果一样那么两者是一一映射

 1 #include <stdio.h>
 2 #include <iostream>
 3 #include <string>
 4 #include <algorithm>
 5 #define zz
 6 using namespace std;
 7 int main(){
 8 #ifndef zz
 9     freopen("in.txt", "r", stdin);
10 #endif
11     string s, t;
12     while(cin>>s>>t){
13         int ch1[26], ch2[26];
14         int i, j;
15         for(i=0; i<26; i++){
16             ch1[i] = 0;
17             ch2[i] = 0;
18         }
19         for(i=0; i<s.length(); i++){
20             ch1[s[i]-'A']++;
21             ch2[t[i]-'A']++;
22         }
23         sort(ch1, ch1+26);
24         sort(ch2, ch2+26);
25         bool ok = true;
26         for(i=0; i<26 && ok; i++){
27             if(ch1[i]!=ch2[i])
28                 ok = false;
29         }
30         if(ok) puts("YES");
31         else puts("NO");
32     }
33     return 0;
34 }

 

时间: 2024-09-20 09:35:03

uvalive 3213 Ancient Cipher的相关文章

poj 2159 Ancient Cipher

这题主要应该就是理解题意的问题,我的确是把题目理解错了,WA了三次,每次都以为一定是正确的,后来看了别人的解释才知道是题目理解错了(竟然还看到了别人的结题报告也有错的...),另外就是学会了用STL的sort快排,很方便,在<algorithm>头文件里面,这说明了一定要自己会写排序,但是不一定每次都是自己写函数,有N多好的函数别人已经写好了,你只用知道什么时候该用就可以了...但是自己也要会写(万一比赛不允许用库函数) 开始错误的想法: #include <iostream> #

uva 1339 Ancient Cipher

点击打开链接uva 1399 题意:给定两个长度分别为n的字符串,判断他们能否一一对应 思路:暴力 分析: 1 首先我们知道这两个字符串的长度最大为100并且相等 2 刚开始我的想法是对两个字符串排序,然后从头开始枚举判断.这个想法妥妥的过了样例,然而等到的确实一顿怒wa.下面举例证明我的思路是错误的 3 假设有两个字符串为ABBCFEA 和 CCGGHJB.排序后为AABBCEF和 BCCGGHJ如果按照我的思路那么我们从头开始枚举得到的是NO,但是实际上这个例子是YES.我们写出两个字符串中

采用Cipher DES针对文件加密、解密

由于经常用一些加密或者解密文件的,所以写了一个简单的采用Cipher DES针对文件加密.解密的工具类,记录一下,防止以后忘记了! import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStrea

UVa 306 / POJ 1026 Cipher (置换群)

306 - Cipher Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=115&page=show_problem&problem=242 http://poj.org/problem?id=1026 Bob and Alice started to use a brand-new encoding scheme.

算法题:HDU 3460 Ancient Printer

链接: http://acm.hdu.edu.cn/showproblem.php?pid=3460 题目: Ancient Printer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 955    Accepted Submission (s): 441 Problem Description The contest is be

2015 南阳 CCPC G.Ancient Go

题目链接: Cilck here~~                                                                                    G - Ancient Go Description Yu Zhou likes to play Go with Su Lu. From the historical research, we found that there are much difference on the rules b

终极解决:iOS 与 Java 服务器之间 SSL 握手失败的解决:Cipher Suites

iOS 与 Java 服务器之间 SSL 握手失败的解决:Cipher Suites 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 终极解决: ------------------ iOS 与

Cipher 在 NTFS 卷上显示或改变文件的加密_DOS/BAT

Cipher 在 NTFS 卷上显示或改变文件的加密.如果在不含带参数的情况下使用,则 cipher 将显示当前文件夹及其所含文件的加密状态. 语法 cipher [{/e|/d}] [/s:dir] [/a] [/i] [/f] [/q] [/h] [/k] [/u[/n]] [PathName [...]] | [/r:PathNameWithoutExtension] | [/w:PathName] 参数 /e  加密指定的文件夹.文件夹做过标记后,使得以后添加到该文件夹的文件也被加密. 

hdu 3460 Ancient Printer

点击打开链接hdu3640 思路:字典树 分析: 1 题目要求的是给定n个字符串,现在有一台的打印机有三种操作"取字符","删除最后一个字符","打印当前单词",问最少需要几次的操作(最后一个单词不用删除). 2 要最少的次数,那么就是使得最后一个单词必须是所有单词中的最长的,所以这里需要涉及到对二维数组的排序利用qsort从小到大: 3 如果两个单词有相同的公共前缀那么肯定是可以减少输入的次数,所以在建字典树的时候应该在节点里面用一个flag标