简介

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

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;
    }
};
posted on 2021-01-11 14:38  HDU李少帅  阅读(48)  评论(0)    收藏  举报