题解 | #牛群的编码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. 边界情况处理

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

全部评论

相关推荐

点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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