力扣1356.根據數字二進位制下1的數目排序
我們先來看一下題目
要求把陣列中的數全都改編成二進位制,而且輸出後每個1數相同的還要重新排序。
要求把同一樣1的數量分為一類,肯定不能直接暴力用很多列表,可以用字典,字典的key就是1的數量,程式碼如下
class Solution:
def sortByBits(self, arr: List[int]) -> List[int]:
y = {}
for i in arr:
z = list(bin(i))
c = z.count('1')
if c not in y:
y[c] = [i]
elif c in y:
y[c].append(i)
key = sorted(y.keys())
w = []
for a in key:
w += sorted(y[a])
return w
把二進位制改為列表後,它就會分成一個一個的:
x = '123456'
print(list(x))
['1', '2', '3', '4', '5', '6']
相關文章
- 力扣 根據數字二進位制下1的數目排序力扣排序
- 根據數字二進位制下 1 的數目排序排序
- leetcode-1356. 根據數字二進位制下 1 的數目排序LeetCode排序
- leetcode.1356. 根據數字二進位制下 1 的數目排序LeetCode排序
- leetcode1356. 根據數字二進位制下 1 的數目排序LeetCode排序
- 二進位制中1的個數
- 二維陣列根據欄位進行排序陣列排序
- SpringJpa @query 中根據傳入引數(欄位)排序Spring排序
- 根據介面返回的二進位制流匯出檔案
- 頁面顯示二進位制數原始據亂碼
- 負數的二進位制數問題
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 【劍指offer】二進位制中1的個數
- JZ-011-二進位制中 1 的個數
- 1417 二進位制數的大小
- 輸出二進位制數
- 根據字典,轉成相應的進位制
- 驗證二進位制數字正規表示式
- 【刷演算法】二進位制中1的個數演算法
- 二維陣列根據某個欄位排序陣列排序
- 劍指 Offer 15. 二進位制中1的個數
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 二維陣列根據鍵的值進行排序陣列排序
- 對十進位制數字的按位輸出,取反,並求其位數
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- leedcode-數字轉換為十六進位制數
- 二進位制漏洞挖掘之整數溢位
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- 對陣列中的數字 1 和 2 進行排序,使得數字 1、2 分別位於前、後部分陣列排序
- 力扣-1705. 吃蘋果的最大數目力扣蘋果
- 負數補碼(16進位制轉10進位制的負數)
- 使用 Haskell 將十進位制數字轉成羅馬數字Haskell
- 【proto】python根據proto檔案構造message,並換為二進位制Python
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- offer通過--10二進位制中統計1的個數-2
- 【劍指offer中等部分4】二進位制中1的個數(java)Java