python實現輸出乙個序列的所有子串行示例

2022-10-03 09:45:09 字數 893 閱讀 8468

如下所示:

def sub(arr):

finish=

size = len(a程式設計客棧rr)

end = 1 << size #end=2**size

for index in range(end): # shift index

array =

for j in range(size):

# 00,01,10,11 is symmetrical

if (index >> j) % 2vsufxttfys: # this result is 1, so do not h**e to write ==

arr程式設計客棧ay.append(arr[j])

# print(array)程式設計客棧

finish.append(array)

return finish

移位運算子 << 的優先順序大於賦值 =

用01二進位制串決定陣列中的每個數字是否輸出

=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…

如何實現?

第乙個迴圈實現的是01串的遍歷,eg.由000到111

第二個迴圈實現的是陣列的遍歷,eg.將000與陣列中的每一位數字做判斷

在if語句中,用到了向右移位,由於二進位制串是對稱的,所以我們可以將01串從後向前與陣列中的每一位數字做判斷。

eg.001與100對稱,110與011對稱…

在001中,最後一位是1,說明陣列中3需要輸出

但是在我們遍歷陣列的時候,先遇到的是1與arr[www.cppcns.com0],不過由於對稱性,這種情況其實與在100中,後遇到的是1與arr[2]

本文標題: python實現輸出乙個序列的所有子串行示例

本文位址:

拓撲排序並且輸出乙個可能的序列

如題描述 根據給出的圖輸出乙個可能的拓撲序列。判斷能否進行拓撲排序的關鍵是圖是否存在環。這裡我們用陣列c的值表示頂點當前的狀態。0代表沒有被訪問過,1代表正在被訪問,1代表該點及其子孫均被訪問過,並且是不存在的環的點。那麼我們用dfs去遍歷,如果該點在被訪問的過程中再次被訪問,則證明存在環。或者該點...

python輸入乙個 輸出2個 問題

在python裡面,如果 後面不是乙個合法的轉移字元,那麼,python會列印兩個 換句話說,python將 也當成普通字元看待,而不是轉義符的標誌 s c py code s c py code len s 總共有10個字元,而不是12個 10反斜槓 是 轉意符 改變後面字元的含義,比如 r 回車...

Python實現按照指定要求逆序輸出乙個數字的方法

問題是 輸入乙個數字,按照指定要求逆序輸出該數字,很簡單,下面是實現 usr bin env python encoding utf 8 author 沂水寒城 功能 逆序輸出乙個數字 如果數字是正數直接輸出如 177 771 如果數字是負數保留負號如 945 549 如果數字以0結果逆序後需要去除...