Відсортуємо букви в кожному слові в лексикографічному порядку. Якщо отримані слова співпадуть, то початкові слова складаються з однакових букв і, відповідно, є анаграмами.
Реалізація алгоритму
Оголосимо робочі рядки і .
string s, q;Читаємо вхідні рядки.
cin >> s;
cin >> q;Сортуємо букви в кожному рядку.
sort(s.begin(),s.end());
sort(q.begin(),q.end());Порівнюємо отримані рядки і виводимо відповідь.
if (s == q) puts("YES"); else puts("NO");Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
char[] s = con.nextLine().toCharArray();
char[] q = con.nextLine().toCharArray();
Arrays.sort(s);
Arrays.sort(q);
if (Arrays.equals(s, q))
System.out.println("YES");
else
System.out.println("NO");
con.close();
}
}Python реалізація
Читаємо вхідні рядки.
l1 = list(input())
l2 = list(input())Сортуємо букви в кожному рядку.
l1.sort()
l2.sort()Порівнюємо отримані рядки і виводимо відповідь.
if l1 == l2:
print('YES')
else:
print('NO')