题解 | #牛群的编码#

牛群的编码

https://www.nowcoder.com/practice/fd18eec140244f31ac817757a54b4a39

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param a string字符串
     * @param b string字符串
     * @return string字符串
     */
    public String addBinary (String a, String b) {
        // write code here
        StringBuilder stringBuffer1 = new StringBuilder(a);
        StringBuilder stringBuffer2 = new StringBuilder(b);
        String string1 = stringBuffer1.reverse().toString();
        String string2 = stringBuffer2.reverse().toString();
        int index1 = 0;
        int index2 = 0;
        int left = 0;
        StringBuilder result = new StringBuilder();
        while (index1 < string1.length() && index2 < string2.length()) {
            int value = string1.charAt(index1) - '0' + string2.charAt(index2) - '0' + left;
            left = value - 2 >= 0 ? 1 : 0;
            result.append(value % 2);
            index1++;
            index2++;
        }
        while (index1 < string1.length()) {
            int value = string1.charAt(index1) - '0' + left;
            left = value - 2 >= 0 ? 1 : 0;
            result.append(value % 2);
            index1++;
        }
        while (index2 < string2.length()) {
            int value = string2.charAt(index2) - '0' + left;
            left = value - 2 >= 0 ? 1 : 0;
            result.append(value % 2);
            index2++;
        }
        if (left == 1) {
            result.append(left);
        }
        return result.reverse().toString();
    }

}

本题考察的知识点是编码相加,所用编程语言是java。

两个编码相加是从右往左逐一相加,结果满2进1。所以我们将两个字符串先逆置,然后两者相加,将结果逐一存储在StringBuffer中,最后将StringBuffer逆置返回

全部评论

相关推荐

烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务