В Swift сравнение lhs == rhs проверяет равенство строк с сохранением порядка символов. Для побайтового равенства следует сравнивать UTF-8 отдельно.
Функция проверки совпадения символов строк
В Swift сравнение lhs == rhs проверяет равенство строк с сохранением порядка символов. Для побайтового равенства следует сравнивать UTF-8 отдельно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, которая принимает две строки и определяет, идентичны ли их символы в одинаковом порядке.
Ответ
В Swift сравнение lhs == rhs проверяет равенство строк с сохранением порядка символов. Для побайтового равенства следует сравнивать UTF-8 отдельно.
func sameCharacters(_ lhs: String, _ rhs: String) -> Bool {
lhs == rhs
}
Порядок важен: "ab" и "ba" различаются. Swift учитывает каноническую эквивалентность Unicode: внешне и семантически одинаковые символы могут иметь разные последовательности кодовых точек и всё же сравниваться равными. Если задача требует именно одинаковые байты, используйте lhs.utf8.elementsEqual(rhs.utf8). Не переводите строки в нижний регистр без отдельного требования к нечувствительности регистра.