504. 七进制数

本文介绍了如何将整数转换为7进制字符串,包括两种方法:一种是使用StringBuilder逐位转换,另一种是一行代码实现的高效方法。重点讲解了第二种方法的工作原理。同时,讨论了StringBuilder的高效字符串操作和两种方法的区别。
摘要由CSDN通过智能技术生成

题目

给定一个整数,将其转化为7进制,并以字符串形式输出。

示例 1:

输入: 100
输出: "202"

示例 2:

输入: -7
输出: "-10"

注意: 输入范围是 [-1e7, 1e7] 。

题解

方法1:

class Solution {
    public String convertToBase7(int num) {
        StringBuilder sb = new StringBuilder();
        //判断零
        if(num == 0 ){
            sb.append("0");
            return sb.toString();
        }
        boolean flag = false;
        //判断是否小于零,将小于零的数,转换成大于零的数,统一处理
        if(num<0){
            num = - num;
            flag = true;
        }
        // 求进制的模板,转换成几进制,就先求余几,然后再除以几
        while(num!=0){
            sb.append(num%7);
            num/=7;
        }
        // 逆序
        sb.reverse();
        if(flag) sb.insert(0,"-");
        return sb.toString();
    }
}

在这里插入图片描述

方法2:

还看到一个贼厉害的,一行代码就解决了
https://leetcode-cn.com/problems/base-7/solution/zhi-xing-yong-shi-1-ms-zai-suo-you-java-ti-jiao-10/

class Solution {
    public String convertToBase7(int num) {
       return num >= 0?Integer.toUnsignedString(num, 7):"-"+Integer.toUnsignedString(num*-1,7); 
    }
}

在这里插入图片描述
虽然厉害但是没懂原理,好像是用了自带的方法?时间有限没往下深入了解。有空学习一下。

StringBuilder:

StringBuilder是一个类,可以用来处理字符串,最简单的用法:

StringBuilder sb=new StringBuilder();
sb.Append("123");
sb.Append("456");
string str=sb.ToString();

最后得到的str字符串的值就是"123456",这种用法要比直接字符串相加效率高,比如:

string s1=“123”;
string s2=“456”;
string str=s1+s2;

得到的结果相同,但在处理大规模的字符串的时候第二种方法效率会变低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值