[Swift]LeetCode504. 七进制数 | Base 7

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].



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

示例 1:

输入: 100
输出: "202"

示例 2:

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

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



16ms

 1 class Solution {
 2     func convertToBase7(_ num: Int) -> String {
 3         if num == 0 {return "0"}
 4         var res:[Int] = [Int]()
 5         //取绝对值
 6         var number:Int = abs(num)
 7         while(number != 0)
 8         {
 9             var temp:Int = number % 7
10             number /= 7
11             //在位置0处插入
12             res.insert(temp,at: 0)
13         }
14         //数组转字符串
15         let dataInt = res.map(String.init)
16         var str:String = dataInt.joined(separator: "")
17         if num < 0
18         {
19             str = "-" + str
20         }
21         return str
22     }
23 }


8ms

 1 class Solution {
 2     func convertToBase7(_ num: Int) -> String {
 3         var input = abs(num)
 4
 5         var result = ""
 6
 7         if num == 0 {
 8             return "0"
 9         }
10
11         while input >= 1 {
12             result = "\(input % 7)" + result
13             input = input / 7
14         }
15
16         if num < 0 {
17             result = "-" + result
18         }
19
20         return result
21     }
22 }


12ms

 1 class Solution {
 2     func convertToBase7(_ num: Int) -> String {
 3         if num == 0 { return "0" }
 4         let number = abs(num)
 5         var result = ""
 6         var x = number
 7         while x > 0 {
 8             let rem = x % 7
 9             result = "\(rem)\(result)"
10             x = x / 7
11         }
12
13         return num < 0 ? "-\(result)" : result
14     }
15 }


20ms

 1 class Solution {
 2     func convertToBase7(_ num: Int) -> String {
 3         if num < 0 {
 4             return "-" + convertToBase7(-num)
 5         }
 6
 7         var res = ""
 8         var num = num
 9
10         while num >= 7 {
11             res = String(num % 7) + res
12             num /= 7
13         }
14         res = String(num) + res
15
16         return res
17     }
18 }


24ms

 1 class Solution {
 2     func convertToBase7(_ num: Int) -> String {
 3         guard num != 0 else {
 4             return "0"
 5         }
 6         var num = num
 7         var flag = true
 8         if num < 0 {
 9             flag = false
10             num = -num
11         }
12         var result = ""
13         while num > 0 {
14             result = "\(num % 7)" + result
15             num = num / 7
16         }
17         return flag ? result : ("-" + result)
18     }
19 }

原文地址:https://www.cnblogs.com/strengthen/p/9809768.html

时间: 2024-10-15 00:51:46

[Swift]LeetCode504. 七进制数 | Base 7的相关文章

leetcode 504. 七进制数(Base 7)

目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" 注意: 输入范围是 [-1e7, 1e7] . 解法: class Solution { public: string convertToBase7(int num) { string res = ""; bool neg = false;

504 Base 7 七进制数

给定一个整数,将其转化为7进制,并以字符串形式输出.示例 1:输入: 100输出: "202" 示例 2:输入: -7输出: "-10"注意: 输入范围是 [-1e7, 1e7] .详见:https://leetcode.com/problems/base-7/description/ C++: class Solution { public: string convertToBase7(int num) { if(num==0) { return "0&

用Python内置函数轻松实现各种进制数之间的转换

0.说明 9个月没有写过Python了,这9个月都在华为的ICT知识海洋里遨游,前段时间刚刚通过了HCIE的认证,想着还是喜欢Python和Linux多些,所以又回来了,后面会有越来越多的Python干货分享给大家,比如后面会打算写一个完整的Linux主机监控项目的教程给初入门的朋友,相信这会是非常不错的体验. 那段时间,曾经有些时候,我需要对各种进制进行转换,因为虽然那会不写Python了,但是还是用Python自带的解释器用来做简单的数学计算,很方便. 在网上找,看有没有方法可以实现各种进制

2k进制数(codevs 1157)

题目描述 Description 设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w. 在这里,正整数k(1≤k≤9)和w(k<W< span>≤30000)是事先给定的. 问:满足上述条件的不同的r共有多少个? 我们再从另一角度作些解释:设S是长度为w 的01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)中的q.将S

将十进制数转成任何指定的进制数

/** * * <p> * Description:将十进制数转成任何指定的进制数 * <p> * <p> * Copyright:copyright (c) 2013 * <p> * <p> * Create Date:2013-12-21 * <p> * <p> * Company:ShangHai University * <p> * * @author WANGXU * @versionv1.1 */

c++描述将一个2进制数转化成10进制数(用到初始化栈,进栈,入栈)

1 /* 2 c++描述将2进制数转化成10进制数 3 问题,1.初始化栈后,用new,不知道delete是否要再写一个函数释放内存, 4 还是在哪里可以加上delete 5 2.如果栈满了,我要分配多点空间,我想的办法是先用delete删除之前申请的 6 空间,再用new重新申请,但是c语言有一个函数 7 s->base =(ElemType*) realloc(s->base,(s->stackSize + STACKINCREMENT) * sizeof(ElemType));//

用栈实现2进制数到十进制数的转换

问题:用栈实现2进制数到十进制数的转换 解析:用到<math.h>库中的pow函数,pow(2,i)表示2^i.当进行形参到实参的传送时,需要改变栈中的元素时传入&s,当不改变栈中元素,只对栈s进行操作时,传入s 代码实现: /*利用栈的特点将2进制数转换为10进制数 */ #include<stdio.h> #include<stdlib.h> #include<math.h> #define ElemType char #define Init_

栈的实现,进制数转换以及符号匹配

//seqstack.h #ifndef _SEQSTACK_H #define _SEQSTACK_H #define STACK_SIZE 20 typedef int ElemType; //若要使用功能5 请将int 改为char #include<iostream> #include<assert.h> using namespace std; typedef struct Stack { ElemType *base; int capacity; int top; }S

C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<string.h> 4 #include<stdlib.h> 5 6 char *fun(char (*a)[81], int num, char *max) 7 { 8 max = a[0];//切记这里a[0]就是一个地址.