专栏文章

CF2167B 题解

CF2167B题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min5osva
此快照首次捕获于
2025/12/01 20:59
3 个月前
此快照最后确认于
2025/12/01 20:59
3 个月前
查看原文

思路

开桶,从头到尾遍历,对应位置 s1,i+1s_{1, i} + 1s2,i1s_{2,i} - 1,再遍历一遍,若非 00 则不满足要求。

代码

CPP
#include<bits/stdc++.h>
using namespace std;
int read(){
	int cnt = 0, sign = 1;
	char c = getchar();
	while(!isdigit(c)){
		if(c == '-')	sign = -1;
		c = getchar();
	}
	while(isdigit(c)){
		cnt = (cnt << 1) + (cnt << 3) + (c ^ 48);
		c = getchar();
	}
	return cnt * sign;
}

int main(){
	int T = read();
	while(T--){
		int n = read();
		string a, b;
		cin >> a >> b;
		map <char, int> cnt;
		for(int i = 0; i < n; i++){
			cnt[a[i]]++;
			cnt[b[i]]--;
		}
		bool flag = 0;
		for(char i = 'a'; i <= 'z'; i++){
			if(cnt[i]){
				flag = 1;
			}
		}
		if(flag)	printf("NO\n");
		else	printf("YES\n");
	}
	return 0;
}
 

评论

0 条评论,欢迎与作者交流。

正在加载评论...