CF
来源:互联网 发布:淘宝950轮播图片 编辑:程序博客网 时间:2024/05/02 02:02
1.题目描述:
2.题意概述:
给定一个原串和一个新串,它们之中存在一些序偶,(x, y) 在原串的i位置为x,在新串的i位置是y,且x != y 则存在序偶(x, y),原串的所有x在新串中必须只用y表示。一个字母最多出现在一个序偶中,问这样的序偶有多少对。
3.解题思路:
先贪心地扫一遍确定序偶,再扫一遍判断是否矛盾
4.AC代码:
#include <iostream>#include <cstdio>#include <string>#include <map>#define maxn 101000using namespace std;string p, s;map<char, char> mp, mp1;map<char, int> flag;int main(){cin >> p >> s;int sz = p.size();int ans = 1;for (int i = 0; i < sz; i++){if (p[i] != s[i]){if (flag[p[i]]){if (mp1[p[i]] != s[i]){ans = 0;break;}}else if (flag[s[i]]){ans = 0;break;}else{mp[p[i]] = s[i];flag[p[i]] = 1;flag[s[i]] = 1;mp1[p[i]] = s[i];mp1[s[i]] = p[i];}}}for (int i = 0; i < sz; i++){if (s[i] == p[i]){if (flag[s[i]]){ans = 0;break;}}}if (ans){printf("%d\n", (int)mp.size());for (auto i = mp.begin(); i != mp.end(); i++)printf("%c %c\n", i->first, i->second);}elseputs("-1");return 0;}
0 0
- CF
- CF
- cf
- cf
- CF
- CF
- CF
- CF
- CF
- CF
- cf
- CF
- cf
- cf
- cf ***
- CF
- CF
- CF
- int、long、long long的范围
- Windows下命令行操作学习笔记
- Codeforces Round #401 (Div. 2)D. Cloud of Hashtags
- SAS t检验
- 计算机网络面试题、知识点
- CF
- 【java】通过java字节码指令分析自增(x++和++x)
- [BZOJ4372][动态树分治(点分树)][动态开点线段树]烁烁的游戏
- Unity3D之 AnimationCurve 动画曲线
- 弹性布局基础讲解与高效应用
- PAT 1041
- 乐视发布超4 X70/Max65/Max55 2017发力声学打造音质新标杆
- 微信小程序WebSocket相关问题说明
- 翻页时保持复选框的选中的解决办法