문제출처 : https://www.acmicpc.net/problem/13019
문자열의 뒤에서부터 돌면서 다른게 있으면 카운팅해준다.
A를B로 바꿀수없다는것은 A의 원소와 B의 원소와 다르다는 것인데,
나는 A와 B를 각각 정렬시켜서 문자열을 비교함으로써 걸러주었다.
그리고 출력결과는 문자열을 비교해서 같으면 카운트한갯수를 출력하고 다르면 -1을 출력한다.
code
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string A, B;
int cnt = 0, i, j;
cin >> A >> B;
j = A.length() - 1;
for (i = A.length()-1; i >=0; i--)
{
if (B[j] != A[i])
cnt++;
else
j--;
}
sort(A.begin(), A.end());
sort(B.begin(), B.end());
if (A.compare(B) == 0)
cout << cnt;
else
cout << -1;
return 0;
}