【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 ...
随机推荐
- C语言 fastq文件转换为fasta文件
目前只能处理短序列,若要处理长序列,可按照https://www.cnblogs.com/mmtinfo/p/13036039.html的读取方法. 1 #include <stdio.h> ...
- 53-Linked List Cycle II
Linked List Cycle II My Submissions QuestionEditorial Solution Total Accepted: 74093 Total Submissio ...
- Ansi,UTF8,Unicode,ASCII编码的区别
Ansi,UTF8,Unicode,ASCII编码的区别 近日需要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了, 下面全是从网上搜来的: 1. ASCII和Ansi编码 ...
- k8s-hpa自动横向扩容
目录 hpa自动扩容 官方文档 HPA是什么 Horizontal Pod Autoscaler 演练 参数 案例:监控cpu,内存,每秒数据包自动扩容 度量指标 pod清单案例-pod定义cup内存 ...
- Android实现网络监听
一.Android Wifi常用广播 网络开发中主体会使用到的action: ConnectivityManager.CONNECTIVITY_ACTION WifiManager.WIFI_STAT ...
- Oracle中的加解密函数
对Oracle内部数据的加密,可以简单得使用DBMS_CRYPTO来进行,效果还是不错的,而且使用也比较方便,所以今天专门来学习一下这个包的使用方法.在使用之前,要注意两件事情: 1.DBMS_CRY ...
- soapui pro 5.1.2 的破解方法
Protection-4.6,和scz.key这两个文件能破解5.1.2的SoapUI 的Pro版本,mac 和 windows均可.1.拷贝Protection-4.6.jar到soapui安装的l ...
- go goroutines 使用小结
go +方法 就实现了一个并发,但由于环境不同,需要对并发的个数进行限制,限制同一时刻并发的个数,后面称此为"并发限流". 为什么要并发限流? 虽然GO M+P+G的方式号称可以轻 ...
- 【编程思想】【设计模式】【行为模式Behavioral】备忘录模式Memento
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/memento.py #!/usr/bin/env pyt ...
- MySQL 用户权限相关命令
##1.创建用户: create user test identified by '123456';##identified后面跟密码 ##2.查询所有用户: select user from mys ...