2022-03-27 18:27:43 +08:00
< p > Given the binary representation of an integer as a string < code > s< / code > , return < em > the number of steps to reduce it to < / em > < code > 1< / code > < em > under the following rules< / em > :< / p >
< ul >
< li >
< p > If the current number is even, you have to divide it by < code > 2< / code > .< / p >
< / li >
< li >
< p > If the current number is odd, you have to add < code > 1< / code > to it.< / p >
< / li >
< / ul >
< p > It is guaranteed that you can always reach one for all test cases.< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > s = " 1101"
< strong > Output:< / strong > 6
< strong > Explanation:< / strong > " 1101" corressponds to number 13 in their decimal representation.
Step 1) 13 is odd, add 1 and obtain 14.
Step 2) 14 is even, divide by 2 and obtain 7.
Step 3) 7 is odd, add 1 and obtain 8.
Step 4) 8 is even, divide by 2 and obtain 4.
Step 5) 4 is even, divide by 2 and obtain 2.
Step 6) 2 is even, divide by 2 and obtain 1.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > s = " 10"
< strong > Output:< / strong > 1
< strong > Explanation:< / strong > " 10" corressponds to number 2 in their decimal representation.
Step 1) 2 is even, divide by 2 and obtain 1.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > s = " 1"
< strong > Output:< / strong > 0
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 1 < = s.length < = 500< / code > < / li >
< li > < code > s< / code > consists of characters ' 0' or ' 1' < / li >
< li > < code > s[0] == ' 1' < / code > < / li >
< / ul >