题解 | #牛群的编码II# java

牛群的编码II

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param a string字符串
     * @param b string字符串
     * @return string字符串
     */
    public String subtractTernary (String a, String b) {
        // write code here

         // 将两个三进制数的长度对齐,高位补零
        while (a.length() != b.length())
            b = '0' + b;

        int flag = 0; // 进位标志,用于处理相减结果小于零的情况
        char[] aArray = a.toCharArray(); // 将字符串转换为字符数组以便操作
        char[] bArray = b.toCharArray(); // 同上

        // 从低位向高位依次相减
        for (int i = a.length() - 1; i >= 0; --i) {
            int t = aArray[i] - bArray[i] + flag; // 计算当前位相减的结果
            flag = 0; // 重置进位标志
            if (t < 0) {
                flag = -1; // 若相减结果小于零,设置进位标志
                t += 3; // 调整结果为正数
            }
            aArray[i] = (char) (t + '0'); // 将计算结果放回字符数组
        }

        return new String(aArray); // 将字符数组转换为字符串并返回
    }
}

Java代码

这道题目考察了以下几个知识点

  1. 字符串处理:
  2. 进制转换:
  3. 借位和进位
  4. 边界情况处理

这个代码还是比较简单的,主要就是思考一下进位那点关系,想明白了直接就写出来了,相关注解直接写到代码上了。

全部评论

相关推荐

合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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