Найти первый символ, который отличается между двумя строками
учитывая две строки одинаковой длины, есть ли элегантный способ получить смещение первого другого символа?
очевидным решением было бы:
for ($offset = 0; $offset < $length; ++$offset) {
if ($str1[$offset] !== $str2[$offset]) {
return $offset;
}
}
но это выглядит не совсем правильно, для такой простой задачи.
1 ответ:
вы можете использовать хорошее свойство побитовое XOR (
^
) чтобы достичь этого: в основном, когда вы xor две строки вместе, символы, которые являются одинаковыми, станут нулевыми байтами (""
).