我是靠谱客的博主 飘逸毛衣,最近开发中收集的这篇文章主要介绍LeetCode-67-二进制求和-C语言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

int get_len(char *s){
    int i = 0;
    while(*s++ != '') i++;
    return i;
}

char* reverse(char *s, int len){
    int i=0, j=len-1;
    while(i<j){
        char tmp = s[i];s[i] = s[j];s[j] = tmp;
        i++;j--;
    }
    return s;
}

#define LEN 1000

char * addBinary(char * a, char * b){
    int len1 = get_len(a);
    int len2 = get_len(b);
    char *ret = (char *)malloc(sizeof(char) * (LEN));
    
    int i = 0;
    int j=0;
    int flag =0;
    int tmp;
    int index=0;
    
    memset(ret, 0, LEN);
    
    reverse(a,len1);
    reverse(b, len2);
    
    while(i<len1 || j<len2 || flag){
        tmp = flag + (i<len1?(a[i]-'0'):0) + (j<len2?(b[j]-'0'):0);
        printf("i=%d, j=%d, tmp=%d, flag=%dn", i, j, tmp, flag);
        flag = 0;
        if(tmp>=2){
            tmp -= 2;
            flag = 1;
        }
        ret[index++] = '0' + tmp;
        i++;
        j++;
    }

    
    return reverse(ret, index);
    
}


最后

以上就是飘逸毛衣为你收集整理的LeetCode-67-二进制求和-C语言的全部内容,希望文章能够帮你解决LeetCode-67-二进制求和-C语言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部