Вызов
Если задано целое число в формате дополнения до 32-разрядного двоичного числа , верните индекс второй наименее значимой нулевой цифры в двоичном представлении, где индекс 0представляет наименее значимый бит, а индекс 31представляет наиболее значимый бит.
Если второго ноля нет, вы можете вернуть 0, любое отрицательное число, любое ложное значение или сообщить об ошибке способом, который имеет смысл на вашем языке.
Вы можете использовать 1-индексирование, если хотите, но в приведенных ниже тестах будет использоваться 0-индексирование.
Вы можете использовать целые числа без знака, если хотите; если вы делаете, то вы должны обрабатывать целые числа в диапазоне [0, 2^32). Если вы используете целые числа со знаком, вы должны обрабатывать целые числа в диапазоне [-2^31, 2^31). В тестовых примерах здесь используются целые числа со знаком, но обратите внимание, что -x(подписано) - 2^32 - x(без знака).
Тестовые случаи
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Нет -2 (0b11..10) -> Нет -4 (0b11..00) -> 1 -5 (0b11..1011) -> Нет -9 (0b11..10111) -> Нет 2 ^ 31-2 (0b0111..1110) -> 31
счет
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке!
[0, 2^32).
0b...качестве входных данных?
2^32-1потому что я не должен был возвращаться 33.