BOJ - 11328번_Strfry (C++)
BOJ - 11328번_Strfry
두 개의 문자열에 대해, 2번째 문자열이 1번째 문자열에 strfry 함수(입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어내는 함수)를 적용하여 얻어질 수 있는지 판단하는 프로그램 작성하기
풀이
각 문자열을 이루는 알파벳의 개수를 비교한다.
소스코드
#include <bits/stdc++.h>
using namespace std;
int str1[26];
int str2[26];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
string s1, s2;
cin >> n;
for(int i=0; i<n; i++) {
cin >> s1 >> s2;
for(int j=0; j<s1.length(); j++) {
str1[s1[j]-'a']++;
str2[s2[j]-'a']++;
}
bool check = true;
for(int j=0; j<26; j++) {
if(str1[j] != str2[j]) {
check = false;
break;
}
}
for(int j=0; j<26; j++) {
str1[j] = 0;
str2[j] = 0;
}
if(check) {
cout << "Possible\n";
}
else {
cout << "Impossible\n";
}
}
}