Re: [問題] 1-9位數不重複印出來 (dart)
※ 引述《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
Programming 近期熱門文章
PTT數位生活區 即時熱門文章