java.lang.Object
g1401_1500.s1404_number_of_steps_to_reduce_a_number_in_binary_representation_to_one.Solution

public class Solution extends Object
1404 - Number of Steps to Reduce a Number in Binary Representation to One.<p>Medium</p> <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><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;1101&rdquo;</p> <p><strong>Output:</strong> 6</p> <p><strong>Explanation:</strong> &ldquo;1101&rdquo; corressponds to number 13 in their decimal representation.</p> <p>Step 1) 13 is odd, add 1 and obtain 14.</p> <p>Step 2) 14 is even, divide by 2 and obtain 7.</p> <p>Step 3) 7 is odd, add 1 and obtain 8.</p> <p>Step 4) 8 is even, divide by 2 and obtain 4.</p> <p>Step 5) 4 is even, divide by 2 and obtain 2.</p> <p>Step 6) 2 is even, divide by 2 and obtain 1.</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;10&rdquo;</p> <p><strong>Output:</strong> 1</p> <p><strong>Explanation:</strong> &ldquo;10&rdquo; corressponds to number 2 in their decimal representation.</p> <p>Step 1) 2 is even, divide by 2 and obtain 1.</p> <p><strong>Example 3:</strong></p> <p><strong>Input:</strong> s = &ldquo;1&rdquo;</p> <p><strong>Output:</strong> 0</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 500</code></li> <li><code>s</code> consists of characters &lsquo;0&rsquo; or &lsquo;1&rsquo;</li> <li><code>s[0] == '1'</code></li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • numSteps

      public int numSteps(String s)