台灣最大程式設計社群網站
線上人數
600
 
會員總數:242468
討論主題:187511
歡迎您免費加入會員
討論區列表 >> 其他語言 >> 機器學習python求助(參考codewars)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
機器學習python求助(參考codewars)
價值 : 50 QP  點閱數:85 回應數:2

樓主

流浪貓
門外漢
0 2
20 3
發送站內信

正在練習python這塊
Challenge :
You are given an integer n as input. Your job is to create a diamond that is 2x the given number n.
D(3) :
+++
+
+++
+++++
+++++
+++
+

如果不限制code的長度我沒問題
但現在被限制在89
而我的code在91
D=lambda n:"+"*n+"".join("\n"+" "*(n-j-1)+"+"*(2*j+1)for i in [1,-1]for j in range(n)[::i])
完全沒有頭緒怎麼再縮短
我是猜測for i in [1,-1] for j in range(n)[::i]可以再減短一些
可是怎麼試都不成功
請問一下我該怎麼改

搜尋相關Tags的文章: [ python ] ,
本篇文章發表於2018-04-21 21:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
不懂你的語言
用VB 的觀念,您試試吧

for ii=1 to n
debug.print dupstr(n,"+")
next
for ii=n to 1 step -1
debug.print dupstr(n,"+")
next
剛好89字 您參考吧

str1=dupstr(n,"+")
for ii=1 to N
debug.print mid(str1,1,ii)
next
for ii=N to 1 step -1
debug.print mid(str1,1,ii)
next
選一個吧

再不行還有別的方法
本篇文章回覆於2018-04-23 17:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應
錯了這樣才對
for ii=1 to n
debug.print dupstr(ii,"+")
next
for ii=n to 1 step -1
debug.print dupstr(ii,"+")
next
本篇文章回覆於2018-04-23 17:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.