【LeetCode】504. Base 7 解题报告(Java & Python)
作者: 负雪明烛
id: fuxuemingzhu
个人博客: http://fuxuemingzhu.cn/
题目地址:https://leetcode.com/problems/base-7/#/description
题目描述
Given an integer, return its base 7 string representation.
Example 1:
Input: 100
Output: "202"
Example 2:
Input: -7
Output: "-10"
Note: The input will be in range of [-1e7, 1e7].
题目大意
把10进制数字转换成7进制字符串。
解题方法
内建库
进制转换在java里特别简单。首先用Integer类的toString()。
public class Solution {
public String convertToBase7(int num) {
return Integer.toString(num,7);
}
}
BigInteger类
之前用过的BigInteger类。
import java.math.BigInteger;
public class Solution {
public String convertToBase7(int num) {
return new BigInteger("" + num, 10).toString(7);
}
}
逐位计算
用数学方法,判断正负之后,逐位求:
public class Solution {
public String convertToBase7(int num) {
if(num == 0){
return "0";
}
StringBuilder ans = new StringBuilder();
boolean isNeg = num < 0;
num = Math.abs(num);
while(num != 0){
ans.append("" + (num % 7));
num /= 7;
}
if(isNeg){
ans.append("-");
}
ans.reverse();
return ans.toString();
}
}
二刷的时候,Python。
class Solution:
def convertToBase7(self, num):
"""
:type num: int
:rtype: str
"""
if num == 0: return "0"
res = []
sign = num >= 0
num = abs(num)
while num != 0:
res.append(num % 7)
num //= 7
return ("" if sign else "-") + "".join(map(str, res[::-1]))
倍数相加
用倍数相加的方法:
public class Solution {
public String convertToBase7(int num) {
if (num == 0) return "0";
int sign = (num > 0 ? 1 : -1);
long res = 0; // 因为base7会比base10的数字要长, 防止越界,必须用long
int digit = 1; // 位数,从个位开始
num *= sign;
while (num > 0) {
res += (num % 7) * digit;
digit *= 10;
num /= 7;
}
return String.valueOf(res * sign);
}
}
日期
2017 年 4 月 16 日
2018 年 11 月 17 日 —— 美妙的周末,美丽的天气
【LeetCode】504. Base 7 解题报告(Java & Python)的更多相关文章
- 【LeetCode】120. Triangle 解题报告(Python)
[LeetCode]120. Triangle 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址htt ...
- 【LeetCode】383. Ransom Note 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 Python解法 日期 [LeetCo ...
- 【LeetCode】575. Distribute Candies 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 Python解法 日期 题目地址:ht ...
- 【LeetCode】237. Delete Node in a Linked List 解题报告 (Java&Python&C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 设置当前节点的值为下一个 日期 [LeetCode] ...
- 【LeetCode】349. Intersection of Two Arrays 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:Java解法,HashSet 方法二:Pyt ...
- 【LeetCode】136. Single Number 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 异或 字典 日期 [LeetCode] 题目地址:h ...
- 【LeetCode】283. Move Zeroes 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:首尾指针 方法二:头部双指针+双循环 方法三 ...
- 【LeetCode】459. Repeated Substring Pattern 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历子串 日期 [LeetCode] 题目地址:ht ...
- 【LeetCode】78. Subsets 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 回溯法 日期 题目地址:https://leet ...
随机推荐
- python故障
问题: ImportError: No module named dns.resolver 解决: 通过包管理工具pip安装dnspython pip install dnspython
- HDFS01 概述
HDFS 概述 目录 HDFS 概述 HDFS的产生背景和定义 HDFS产生背景 HDFS定义 优缺点 优点 缺点 组成 NameNode DataNode Secondary NameNode(2n ...
- 日常Java 2021/9/21
将Java数组中的元素前后反转.题目要求:已知一个数组arr = {11,12,13,14,15}用程序实现把该数组中的元素值交换,交换后的数组arr = { 15,14,13,12,11},并输出交 ...
- abandon, aboard, abolish
abandon Abandon is a 2002 American psychological thriller drama film [惊悚片] ... Waiting for Handler o ...
- Linux 设置时区
一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 A命令 : "tzselect" 方法 ...
- 链式栈——Java实现
1 package struct; 2 3 //接口 4 interface ILinkStack{ 5 //栈中元素个数(栈大小) 6 int size(); 7 //取栈顶元素 8 Object ...
- 集合类——集合输出、栈和队列及Collections集合
1.集合输出 在之前我们利用了toString()及get()方法对集合进行了输出,其实那都不是集合的标准输出,集合输出有四种方式:Iterator.ListIterator.Enumeration. ...
- jenkins之邮箱设置
- List如何一边遍历,一边删除?
1.新手常犯的错误 可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的: public static void main(String[] args) { List<String& ...
- Quartz使用AutoFac依赖注入问题小结
theme: channing-cyan highlight: a11y-dark 背景 最近在做一个需求,就是在Job中捕捉异常,然后通过邮件或者消息的方式推送给指定人员,在需求实现的过程中遇到的一 ...