首页 > 其他 > 详细

【字符串】1404. 将二进制表示减到 1 的步骤数

时间:2020-05-04 14:24:07      阅读:56      评论:0      收藏:0      [点我收藏+]

题目:

技术分享图片

 

 

解答:

技术分享图片

 

 

 1 class Solution {
 2 public:
 3     int numSteps(string s) 
 4     {
 5         int idx = s.size() - 1;
 6         int ans = 0;
 7         while(idx > 0)
 8         {
 9             //第一位最后肯定剩1,不另计算
10             if(s[idx] == 0)
11             {
12                 ans++;
13                 idx--;
14             }
15             else
16             {
17                 ans++;//进位的+1
18                 while(idx >= 0 && s[idx] == 1)
19                 {
20                     //进位后,连续的1产生连续的0
21                     ans++;
22                     idx--;
23                 }
24                 if(idx > 0)
25                 {
26                     s[idx] = 1;
27                 }
28             }
29         }
30         return ans;
31     }
32 };

 

【字符串】1404. 将二进制表示减到 1 的步骤数

原文:https://www.cnblogs.com/ocpc/p/12826248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!