【LeetCode】5377. 将二进制表示减到 1 的步骤数

题目链接

今天周赛被这题卡住了,心态直接爆炸
一开始的思路是把字符串转为十进制,再来统计操作次数,用java写一直TLE,后来改用python才过,(python处理大数时较稳定)

class Solution:
    def numSteps(self, s: str) -> int:
        lens = len(s)
        num = int(s,2)
        res = 0
        while num!=1:
            if num%2==1:
                num = num+1
            else:
                num = num//2
            res+=1
        return res;

后面看了题解,可以直接模拟操作,代码如下:

猜你喜欢

转载自www.cnblogs.com/whisperbb/p/12636864.html
今日推荐