• LeetCode-Add Two Binary


    Add BinaryApr 2 '12 3558 / 10570

    Given two binary strings, return their sum (also a binary string).

    For example, a = "11" b = "1" Return "100".

    class Solution {
    public:
    	string addBinary(string a, string b) {
    		// Start typing your C/C++ solution below
    		// DO NOT write int main() function
    		string ret;
    		bool carry=false;
    		if(a.size()>b.size())
    		{
    			int i=a.size()-1,j=b.size()-1;
    			while(j>=0){
    				int sum=a.c_str()[i]+b.c_str()[j]-2*'0';
    				if(carry){
    					sum++;
    					carry=false;
    				}
    				if(sum>=2){
    					sum-=2;
    					carry=true;
    				}
    				char c=sum+'0';
    				ret=c+ret;
    				i--;
    				j--;
    			}
    			while(i>=0){
    				int sum=a.c_str()[i]-'0';
    				if(carry){
    					sum++;
    					carry=false;
    				}
    				if(sum>=2){
    					sum-=2;
    					carry=true;
    				}
    				char c=sum+'0';
    				ret=c+ret;
    				i--;
    			}
    		}
    		else
    		{
    			int i=a.size()-1,j=b.size()-1;
    			
    			while(i>=0){
    				int sum=a.c_str()[i]+b.c_str()[j]-2*'0';
    				if(carry){
    					sum++;
    					carry=false;
    				}
    				if(sum>=2){
    					sum-=2;
    					carry=true;
    				}
    				char c=sum+'0';
    				ret=c+ret;
    				i--;
    				j--;
    			}
    			while(j>=0){
    				int sum=b.c_str()[j]-'0';
    				if(carry){
    					sum++;
    					carry=false;
    				}
    				if(sum>=2){
    					sum-=2;
    					carry=true;
    				}
    				char c=sum+'0';
    				ret=c+ret;
    				j--;
    			}
    		}
    		if(carry)ret='1'+ret;
    		return ret;
    	}
    };
    

      

  • 相关阅读:
    CDN的基本工作过程
    受控组件和非受控组件
    【转】深入理解margin
    【转】前端面试
    centos7下 mysql5.7离线安装
    HIVE客户端启动缓慢处理步骤
    arthas使用介绍
    Hive重写表数据丢失风险记录
    namenode 问题小记
    Kafka丢失数据问题优化总结
  • 原文地址:https://www.cnblogs.com/superzrx/p/3179161.html
Copyright © 2020-2023  润新知