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次。