文章

79

粉丝

221

获赞

46

访问

202.2k

头像
输入字符串s1与s2,比较字符串s2是否为字符串s1变换而来
P1032
发布于2023年3月28日 21:12
阅读数 2.0k

#include <iostream>
#include <string>
using namespace std;
int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		string s1,s2;
		cin >> s1 >> s2;
		int a[26] = { 0 }, b[26] = { 0 };
		for (int i = 0; i < s1.size(); i++)
			a[s1[i] - 'a']++;
		int flag = 0;
		for (int i = 0; i < s2.size(); i++)
			b[s2[i] - 'a']++;
		for(int i=0;i<26;i++)
			if (a[i] != b[i]) {
				flag = 1;
				break;
			}
		if (flag == 0)
			cout << "Yes" << endl;
		else
			cout << "No" << endl;
	}
	return 0;
}

思路:

采用两个字典a与b,遍历字符串s1与s2上的每个字符,将其各自的每种字符的个数都添加到字典中。

比较两字典内的各个字符数量是否相等,若相等则s2是s1的变位词,不等则不是。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发