Вводятся два массива. Как определить, можно ли из символов первого массива создать строку идентичную второму массиву? Cложность в том что первый массив может иметь несколько одинаковых символов и при сортировке и сравнении массивов код работает неверно, по идее из символов первого массива "aboba" можно создать строку идентичную второму массиву "abob", но программа говорит что нельзя из за того что в первом массиве два символа 'a'.
#include <iostream>
#include <algorithm>
bool isPermutation(char* str1, char* str2, int size)
{
std::sort(str1, str1 + size);
std::sort(str2, str2 + size);
for (int i = 0; i < size; ++i)
{
if (str1[i] != str2[i])
return false;
}
return true;
}
int main()
{
const int size = 256;
char* str1 = new char[size];
char* str2 = new char[size];
std::cin >> str1 >> str2;
std::cout << isPermutation(str1, str2, 256);
delete[] str1;
delete[] str2;
return 0;
}