CodeForces 518B Tanya and Postcard (题意,水题)
2016-07-10 00:19
519 查看
点击打开链接
题意分析:题目读得有点晕,看了看网上的题解,其实不难。第一种情况判断两行字符串有多少字母是相同的,
将每个字母相同的个数加起来再输出。第二种情况是求两行字符串有多少字符值相同但大小写不同。
注意再统计完第一种情况后要将一样的字母减去才能够去统计第二种情况。
题意分析:题目读得有点晕,看了看网上的题解,其实不难。第一种情况判断两行字符串有多少字母是相同的,
将每个字母相同的个数加起来再输出。第二种情况是求两行字符串有多少字符值相同但大小写不同。
注意再统计完第一种情况后要将一样的字母减去才能够去统计第二种情况。
#include<iostream> #include<algorithm> #include<cstring> #include<iomanip> #include<cctype> #include<string> #include<cmath> #include<cstdio> #include<cstdlib> #define LL long long using namespace std; const int maxn = 200000 + 10; char ch1[maxn], ch2[maxn]; int cnt1[60],cnt2[60]; int main() { scanf("%s%s",ch1, ch2); int len1 = strlen(ch1), len2 = strlen(ch2); memset(cnt1, 0, sizeof(cnt1)); memset(cnt2, 0, sizeof(cnt2)); for(int i = 0 ; i < len1; i++) { cnt1[ch1[i] - 'A']++; } for(int i = 0; i < len2; i++) { cnt2[ch2[i] - 'A']++; } int ans, ans1 = 0, ans2 = 0; for(int i = 0; i < 63; i++) { ans = cnt1[i] < cnt2[i] ? cnt1[i] : cnt2[i]; cnt1[i] -= ans; cnt2[i] -= ans; ans1 += ans; } for(int i = 0; i < 26; i++) { ans = min(cnt1[i], cnt2[i - 'A' + 'a']) + min(cnt2[i], cnt1[i - 'A' + 'a']); ans2 += ans; } printf("%d %d\n",ans1, ans2); return 0; }
相关文章推荐
- 【HDU 5366】The mook jong 详解
- HDU 5240 Exam (好水的题)
- 北大—1006——Biorhythms
- 时间计算(heaven.pas/cpp)
- 工作依赖(job.cpp/pas)
- 题目 英雄 (BFS)
- kmp 学习 hihocoder #1015
- HDU 1096 A+B for Input-Output Practice (VIII)
- HUST-1601 - Shepherd 暴力
- P1478
- P1035
- P1008 难度2.7
- 2020 绝对值排序
- 2021 发工资咯
- 2022 海选女主角
- 2024 C语言合法标识符
- 2025 查找最大元素
- 2026 首字母变大写
- 2027 统计元音
- 2028 Lowest Common Multiple Plus