leetcode1404

简介

简单的模拟二进制的加减法

code

class Solution1404 {
public:
    int numSteps(string s) {
        int n = s.size();
        int count = 0;
        while(!(s.size() == 1 && s[0]=='1')){
            if(s[s.size()-1] == '1'){
                // 模拟加法
                for(int i = s.size() - 1; i>=0; i--){
                    if(s[i] == '1'){
                        s[i] = '0';
                        if(i == 0){
                            s.insert(0, 1, '1');
                        }
                    }else{
                        s[i] = '1';
                        break;
                    }
                }
            }else{
                // 模拟除法
                s.pop_back();
            }
            count++;
        }
        return count;
    }
};
原文地址:https://www.cnblogs.com/eat-too-much/p/14262055.html