[LeetCode] 405. Convert a Number to Hexadecimal_Easy tag: Bit Manipulation

Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.

Note:

  1. All letters in hexadecimal (a-f) must be in lowercase.
  2. The hexadecimal string must not contain extra leading 0s. If the number is zero, it is represented by a single zero character ‘0‘; otherwise, the first character in the hexadecimal string will not be the zero character.
  3. The given number is guaranteed to fit within the range of a 32-bit signed integer.
  4. You must not use any method provided by the library which converts/formats the number to hex directly.

Example 1:

Input:
26

Output:
"1a"

Example 2:

Input:
-1

Output:
"ffffffff"

Code    T: O(1)

class Solution:
    def toHex(self, num):
        ans, d = "", {10:‘a‘, 11:‘b‘, 12:‘c‘, 13:‘d‘, 14:‘e‘, 15:‘f‘}
        if num == 0:
            return "0"
        if num < 0:
            num = 2**32 + num
        while num > 0:
            tem, rem = divmod(num, 16)
            if rem > 9:
                ans += d[rem]
            else:
                ans += str(rem)
            num = tem
        return ans[::-1]

原文地址:https://www.cnblogs.com/Johnsonxiong/p/9545947.html

时间: 2024-10-09 05:30:41

[LeetCode] 405. Convert a Number to Hexadecimal_Easy tag: Bit Manipulation的相关文章

38. leetcode 405. Convert a Number to Hexadecimal

405. Convert a Number to Hexadecimal Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two's complement method is used. Note: All letters in hexadecimal (a-f) must be in lowercase. The hexadecimal string must no

405. Convert a Number to Hexadecimal

Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two's complement method is used. Note: All letters in hexadecimal (a-f) must be in lowercase. The hexadecimal string must not contain extra leading 0s. If the nu

405 Convert a Number to Hexadecimal 数字转换为十六进制数

给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法.注意:    十六进制中所有字母(a-f)都必须是小写.    十六进制字符串中不能包含多余的前导零.如果要转化的数为0,那么以单个字符'0'来表示:对于其他情况,十六进制字符串中的第一个字符将不会是0字符.     给定的数确保在32位有符号整数范围内.    不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法.示例 1:输入:26输出:"1a"示例 2:输入:-1输出:"

LeetCode OJ - Convert Sorted Array/List to Binary Search Tree

虚函数使用的时机 为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗: 2. 虚函数不总是提供所需的行为: 3. 当我们不考虑继承当前类时,不必使用虚函数. 必须使用虚函数的情况: 1. 当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数. LeetCode OJ - Convert Sorted Array/List to Binary Search Tree,布布扣,bubuko.com LeetCode OJ - Convert Sorted Arra

leetcode第一刷_Valid Number

又是那种看上去非常简单,但非常难过的问题,主要是所有的测试用例很难考虑全面.下面我列举出所有的情况: 1. 字符串前面是可以含有空格的,但是全部都是空格是不行的. 2. 一个数字开头可以是哪些字符呢?很容易想到的是"+"和"-",但是别忘记还有小数点. 3. 一个数字中间也是可以含有字符的,比如科学计数法的"e",而且e之后是可以接"+"或者"-"的.但是要注意e是不是作为数字的开头或者结尾的. 4. 一个

leetcode -day19 Convert Sorted List to Binary Search Tree

1.  Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 分析:将一个升序排列的链表转换为平衡二叉搜索树,采用递归的方式,先找到链表的中点,作为二叉树的根,然后递归求解左右子树. 如下: class Solution { public: Tr

[Javascript] Use Number() to convert to Number if possilbe

Use map() and Number() to convert to number if possilbe or NaN. var str = ["1","1.23","3","4.0","five", undefined, .00]; var num = str.map( (s) => { return Number(s); }); console.log(num); //[1, 1.23, 3

leetcode第一刷_Single Number II

其他出现两次,只有一个出现一次的那道题我就不更了,直接抑或,最后的结果就是那个数.为什么可以这样做呢?因为一个32位int,如果所有数都出现了两次,那么为1的那些位统计的个数一定是2的倍数,抑或之后全变成0.一个数出现了一次,它为1的那些位上,1的个数必定是奇数,抑或之后一定还是1. 我之前知道出现两次这个题的解法,但是理解的不够深,以为抑或是关键,其实不是,出现了偶数次才是关键.理解了这点,推广到出现3次上,如果所有的出现了三次,那么为1的那些位1的个数一定是三的倍数,那如果有一个数出现了一次

leetcode No109. Convert Sorted List to Binary Search Tree

Question: Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 把有序链表转化成平衡的BST Algorithm: 把链表转化成数组,再根据leetcode No108. Convert Sorted Array to Binary Search Tree的方法 找到数组中间的元素,作为根节点,则根节点左边是左子树,根节点