1. 程式人生 > >[Swift]LeetCode504. 七進位制數 | Base 7

[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 }