Это довольно расплывчато, но я бы использовал ассоциативный массив для его решения:
Используйте каждую букву каждого слова в качестве ключа к ассоциативному массиву целых чисел. Буквы одного слова увеличивают значения, а другие уменьшают. Затем, в конце, вы можете запустить foreach через все ключи и проверить, что все значения равны нулю, а затем он совпадает. Это дает вам базовую арендную плату == Tren функциональность.
Предостережения за неопределенность:
1. Если с несколькими буквами все в порядке, например, rent == rreenntt, то при добавлении букв в массив проверьте, существует ли ключ, и если он существует, не добавляйте его снова.
2. Если с дополнительными буквами все в порядке, например, rent == renter, но fernt! = Renter, то при проверке значений массива в конце убедитесь, что 1 и -1 не входят в массив одновременно Другими словами, только 1 и 0 в порядке, или -1 и 0 в порядке, но не 1 и -1 не могут быть в массиве одновременно.
Я не знаю, насколько быстро это будет относительно других подходов, но это было бы легко реализовать.