25 lines
351 B
Go
25 lines
351 B
Go
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
|