每列長我以前從來沒有使用Python,但一所學校的單位我想我應該學習它, 我有一個暗號文本打破嘗試在python
ICBKAOREMDERAEAA
這是i am a code breaker,
手工破解這個我不得不成立了一個4×4格
I C B K
A O R E
M D E R
A E A A
正如你看到的然後就往下走的每一列,這就是我想要得到的代碼做但每邊網格從1 x長度輸入到所有可能的大小
我已經設法破解這個手,但我現在要做的是使用python,將採取輸入ICBKAOREMDERAEAA
並輸出每一個可能的列的大小的組合,
這樣的一列,將顯示
ICBKAOREMDERAEAA
2列,將減半輸入和然後將結果寫每一列下去
ICBKAORE
MDERAEAA
這將輸出
IMCDBEKRAAOERAEA
等,
我怎麼能在Python代碼這樣想,我以前從來沒有這麼難過使用它,如果這是一個簡單的問題
的解決辦法是我認爲
輸入文本
然後插入到一個數組和拆分該數組ë時間,但我怎麼可以編碼呢?
我希望,該算法將打印出來的答案,全長的,並且代碼會自動做了網格大小,這是一個基本transpotion密碼BTW
由於在這裏評論我使用的代碼
def main():
s = "ICBKAOREMDERAEAA"
for i in range(1, len(s) + 1): # range doesn't include upper bound
rows = [s[x:x+i] for x in range(0, len(s), i)]
print('\n'.join(rows))
但得到的錯誤
Traceback (most recent call last):
File "transsolve.py", line 4, in <module>
for i in range(1, len(s) + 1): # range doesn't include upper bound
NameError: name 's' is not defined
得到它編譯OK了!但在控制檯:(
def main():
s = "ICBKAOREMDERAEAA"
for i in range(1, len(s) + 1): # range doesn't include upper bound
rows = [s[x:x+i] for x in range(0, len(s), i)]
print('\n'.join(rows))
我試圖完成的輸出,所以它看起來是這樣的
它能夠自動打印出每一行,並有騎下來每列無輸出
你能否闡述算法應該是什麼樣子?你想要一個完整的字符串,然後一半,然後四分之一,等等,還是比它更細粒度? – sundance
我希望算法能夠打印出全長的答案,並且代碼會自動完成網格大小,這是一個基本的傳輸密碼btw – user2292674