相同字符数目

来源:互联网 发布:善领端口是那个文件 编辑:程序博客网 时间:2024/06/05 16:23

题目描述

问题很简单,给定仅由大小写字符和数字字符组成的字符串A和B,统计A和B中相同字符的数目,不考虑字符的次序。例如字符串“ABCAD”
与”dACBA”, 相同字符共有四个,分别是两个‘A’,一个‘B’和一个‘C'.


输入

第一行是一个整数T,表示有多少组数据。每组数据一行,每行包括由空格分开的两个字符串A和B,字符串长度不超过100.

输出

对于每组数据,输出一行,该行仅包括一个整数,即两个字符串的相同字符数目。

样例输入

2ABCAD dACBA12345 abde

样例输出

40
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){int i, j, n, c, d, e, g, sum;char a[110], b[110];scanf("%d", &n);while (n--){scanf("%s", a);scanf("%s", b);c = strlen(a);d = strlen(b);sort(a, a + c);  //默认升序sort(b, b + d);  //默认升序sum = 0; e = 1; g = 0;for (i = 0; i<c; i++){if (a[i] != a[i + 1]){for (j = 0; j<d; j++){if (a[i] == b[j]){for (; j<d; j++){if (a[i] != b[j]){if (e <= g){sum = sum + e;e = 1;g = 0;break;}else{sum = sum + g;e = 1;g = 0;break;}}if (a[i] == b[j] && j == d - 1){g++;if (e <= g){sum = sum + e;e = 1;g = 0;break;}else{sum = sum + g;e = 1;g = 0;break;}}else{ g++; }}if (a[i] != b[j]) break;}}}else { e++; }}printf("%d\n", sum);}return 0;}

0 0
原创粉丝点击