Найти первый символ, который отличается между двумя строками


учитывая две строки одинаковой длины, есть ли элегантный способ получить смещение первого другого символа?

очевидным решением было бы:

for ($offset = 0; $offset < $length; ++$offset) {
    if ($str1[$offset] !== $str2[$offset]) {
        return $offset;
    }
}

но это выглядит не совсем правильно, для такой простой задачи.

1 68

1 ответ:

вы можете использовать хорошее свойство побитовое XOR (^) чтобы достичь этого: в основном, когда вы xor две строки вместе, символы, которые являются одинаковыми, станут нулевыми байтами ("").