Find the Difference
https://leetcode.com/problems/find-the-difference/description/ | Easy |
Условие
Даны две строки s и t, состоящие из строчных букв. Строка t формируется путем случайного перемешивания строки s с добавлением одного дополнительного символа. Нужно найти этот дополнительный символ.
Примеры
Input:
s = “abcd”, t = “abcde”Output:
“e”Explanation:
Символ ‘e’ добавлен в строку t.
Input:
s = “”, t = “y”Output:
“y”
Решение
fun findTheDifference(s: String, t: String): Char {
var result = 0
// XOR всех символов в s
for (char in s) {
result = result xor char.toInt()
}
// XOR всех символов в t
for (char in t) {
result = result xor char.toInt()
}
return result.toChar() // Преобразуем результат обратно в символ
}
Временная сложность
O(n), где n — длина строки s (или t), так как мы проходим по каждой строке один раз.
Пространственная сложность
O(1), так как используется только фиксированное количество дополнительной памяти для переменной result.