力扣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排序
- 題目1513:二進位制中1的個數
- 二進位制中1的個數
- JavaScript 二進位制數字轉換為十進位制JavaScript
- 二維陣列根據欄位進行排序陣列排序
- javascript十進位制數字和二進位制相互轉換JavaScript
- 位運算--求一個 數二進位制中1的個數
- 位運算(一):二進位制中1的個數
- 負數的二進位制數問題
- 數字邏輯練習題-(二進位制/16進位制模擬)
- 頁面顯示二進位制數原始據亂碼
- 求一個整數的二進位制中1的個數
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 根據介面返回的二進位制流匯出檔案
- 【劍指offer】二進位制中1的個數
- SpringJpa @query 中根據傳入引數(欄位)排序Spring排序
- 其他進位制的數字 轉換
- 驗證二進位制數字正規表示式
- 求二進位制數中1的個數(程式設計之美)程式設計
- js將數字轉換為二進位制、十六進位制或者八進位制程式碼JS
- 【刷演算法】二進位制中1的個數演算法
- 根據字典,轉成相應的進位制
- 1417 二進位制數的大小
- 力扣-1705. 吃蘋果的最大數目力扣蘋果
- js將數字轉換成二進位制形勢JS
- IBM Power6拋棄傳統二進位制 使用十進位制數字IBM
- 二維陣列根據某個欄位排序陣列排序
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- java二進位制正數和負數取反Java
- 對十進位制數字的按位輸出,取反,並求其位數
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 劍指 Offer 15. 二進位制中1的個數
- JZ-011-二進位制中 1 的個數