Re: [問題] 1-9位數不重複印出來 (dart)

看板Programming作者 ({id:"Ticore"};//)時間7年前 (2016/12/13 19:19), 7年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《mikemagic88 (Mikemagic88)》之銘言: : 使用者輸入1 印1-9 : 使用者輸入2 印1-98 (11, 22, 33等重複的不印) : 使用者輸入3 印1-987 (121, 988, 667等有重複的不印) 用 dart 語言實作 dartpad link: https://dartpad.dartlang.org/c23e2b944f1a93201e75591d0c000baf code: main() { Stopwatch timer = new Stopwatch(); int n = 6; timer.start(); Iterable<String> result = genUniDigitNumber(n).toList(); print('${timer.elapsedMilliseconds} ms'); print('result length: ${result.length}'); print(result); } Iterable<String> genUniDigitNumber([int n = 1, List<String> l0]) sync* { l0 ??= ['', '1', '2', '3', '4', '5', '6', '7', '8', '9']; if (n == 1) { yield* l0..remove(''); } else { for (String i in l0) { List<String> l1 = l0.toList(); if (i != '' && (l1..remove(i)).contains('')) l1[0] = '0'; for (String k in genUniDigitNumber(n - 1, l1)) yield '$i$k'; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.141.123 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1481627963.A.ADA.html ※ 編輯: ticore (223.136.141.123), 12/13/2016 19:19:51 ※ 編輯: ticore (223.136.141.123), 12/13/2016 23:08:24
文章代碼(AID): #1OJzaxhQ (Programming)