lc-go/solutions/14/q1404/solution.go

26 lines
492 B
Go

// Package q1404 implements a solution for https://leetcode.com/problems/number-of-steps-to-reduce-a-number-in-binary-representation-to-one/
package q1404
func numSteps(s string) int {
steps := 0
carry := false
for i := len(s) - 1; i > 0; i-- {
switch {
case !carry && s[i] == '0':
steps++
case !carry && s[i] == '1':
steps += 2
carry = true
case carry && s[i] == '0':
steps += 2
default:
steps++
}
}
if carry {
steps++
}
return steps
}
var _ = numSteps