Это вопрос программирования
Учитывая две строки одинаковой длины, вы должны сказать, идентичны ли они обе строки.
Две строки S1 и S2 считаются идентичными, если какая-либо из перестановок строки S1 равна строке S2. подробнее см. Пример объяснения.
Ввод :
Первая строка, содержит целочисленная "Т", обозначающий "нет". из тестовых случаев.
Каждый тест состоит из одной строки, содержащей две разделенные пробелами строки S1 и S2 одинаковой длины.
Выход:
Для каждого тестового случая, если какая-либо из перестановок строки S1 равна строке S2, выведите YES, иначе выведите NO.
Ограничения:
1<= T <=100
1<= |S1| = |S2| <= 10^5
Строка состоит только из строчных букв.
Примечание : Используйте Только Концепцию Хэширования . Попробуйте сделать это в O(длина строки) .
ВХОДНОЙ СИГНАЛ ОБРАЗЦА
3
Сумит Мицу
амбудж Джамба
Абхи хибб
ПРИМЕР ВЫВОДА
ДА
ДА
НЕТ
Что я уже пробовал:
#include<iostream> #include<string.h> using namespace std; int main() { int n,j,f=0,c,d; char str1[100000]; char str2[100000]; std::cin>>n; while(n--) { std::cin.getline(str1,100000); std::cin.getline(str2,100000); c=strlen(str1); d=strlen(str2); for(int i=0;i<c;i++) { for(j=0;j<d;j++) { if(str1[i]==str2[j]) { f++; } } } if(f==c) { std::cout<<"\nYES"; } else { std::cout<<"\nNO"; } } return 0; }
Его вывод в 1-м случае-да, но в другом случае-неверен.