字符串- 题意理解与转换
来源:互联网 发布:airdroid知乎 编辑:程序博客网 时间:2024/05/22 15:23
*POJ*1822古代密码
!!!一定要理解题意……审题审题审题
一开始理解成了所有的元素替换成自己或者自己+1
写了一版
#include <iostream>#include <string.h>#include <algorithm>using namespace std;const int N = 108;bool match(char c1, char c2){ if(c1 == c2) return true; if(c1 < 'Z' && c1 + 1 == c2) return true; if(c1 == 'Z' && c2 == 'A') return true; return false;}char s1[N],s2[N];bool judge(){ int len1 = strlen(s1), len2 = strlen(s2); if(len1 != len2) return false; int flag = 1; sort(s1, s1 + len1); sort(s2, s2 + len1); // printf("s1:%s\n",s1); // printf("s2:%s\n",s2); for(int i = 0; i < len1; i++) { if (match(s2[i],s1[i]) == false) { flag = 0; //printf("i:%d s2[i]:%c s1[i]:%c", i, s2[i], s1[i]); break; } } if(flag == 1) return true; while(s2[len1-1] == 'Z') { flag = 1; s2[len1 - 1] = 'A'; sort(s1, s1 + len1); sort(s2, s2 + len1); // printf("s1:%s\n",s1); // printf("s2:%s\n",s2); for(int i = 0; i < len1; i++) { if (match(s2[i],s1[i]) == false) { flag = 0; break; } } if(flag == 1) return true; } return false;}int main(){#ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);#endif cin >> s1 >> s2; if(judge() == true) printf("YES\n"); else printf("NO\n"); #ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout);#endif return 0;}
当然这一版也加深了一些我对字符串处理的思考。
我觉得有个博主写得很好
http://blog.csdn.net/hengbao4/article/details/46563269
关注
- 数量变化
- 质量变化
属性变化
打乱顺序- 可以考虑是不是能用排序抵消这种变化
- 如果是 + 1替换的话 - 可以考虑是不是特殊处理Z即可
在这道题里,我们发现,只需要统计它的数目就可以知道匹配与否。
也涉及到一个非常常用的方法 ,在统计的数目不多的时候,直接给每一个字母开一个数组统计数量即可
但是写的时候一直出bug
#include <iostream>#include <string.h>#include <algorithm>#include <stdio.h>using namespace std;char s1[200],s2[200];int num1[26],num2[26];int main(){ cin >> s1 >> s2; int len1 = strlen(s1), len2 = strlen(s2); for(int i = 0; i < len1; i++) { num1[s1[i] - 'A']++; } for(int i = 0; i < len2; i++) { num2[s2[i] - 'A']++; } sort(num1,num1 + 26); sort(num2,num2 + 26); for(int i = 0; i < 26; i++) { if(num1[i] != num2[i])//大括号!!!!!!! { cout << "NO" << endl; return 0; } } cout << "YES" << endl; return 0;}
debug了好久好久……发现是if没有加大括号!!!!
阅读全文
0 0
- 字符串- 题意理解与转换
- Lucky Division【理解题意】
- 【理解题意】HDU2060Snooker
- ants run 题意理解
- 地牢逃脱-理解题意
- nyoj 618 追击【理解题意】
- hdu_5099 理解题意要求即可
- ccccleve_1总结 注意理解题意
- poj2709 Painter(关键在于理解题意)
- 题意!!!
- 字符串与数字转换
- 字符串与整形转换
- 字符串与数值转换
- 字符串与Stream转换
- 数字与字符串转换
- 字符串与数字转换
- 整数与字符串转换
- 字符串与ascii转换
- LNMP环境搭建与优化 实践
- effective c++ 03_尽可能使用const 学习
- 决斗场
- Redis集群搭建
- 如何调用控制器的方法
- 字符串- 题意理解与转换
- redis实现session共享
- PAT 乙级 1078. 字符串压缩与解压 (20)
- MATLAB利用communication toolbox实现AGWN信道不同编码译码误码率分析
- U3D资料外链
- mysql5.7 阿里云安装部署
- Android中java和smali转化一键化操作工具java2smali原理分析
- 关于最近一篇 "别再盯着我们看了" 92年女生致周鸿祎公开信事件,我想说点什么!
- Android深入四大组件(七)Android8.0 根Activity启动过程(后篇)