leetcode1404

 1 class Solution:
 2     def convertInt(self,s):
 3         n = len(s)
 4         basenum = 0
 5         p = 0
 6         for i in range(n-1,-1,-1):
 7             basenum += int(s[i]) * (2 ** p)
 8             p += 1
 9         return basenum
10 
11     def numSteps(self, s: str) -> int:
12         x = self.convertInt(s)
13         count = 0
14         while x != 1:
15             if x % 2 == 0:
16                 x = x // 2
17             else:
18                 x += 1
19             count += 1
20         return count

算法思路:二进制转十进制。

定义一个函数,用于二进制串转十进制的整型。

按照题目的规则进行数值的运算,每运算一次,step次数累加1次。

原文地址:https://www.cnblogs.com/asenyang/p/12636774.html