我正在尝试查找连续数字组成的系列中最大的5位数字。
代码:
import 'dart:math';
int solution(String digits) {
List<int> sequence = digits.split('').map((digit) => int.parse(digit)).toList();
List<int> fiveDigitNumbers = List<int>();
sequence.fold(sequence, (remainder, digit) {
fiveDigitNumbers.add(int.parse(remainder.take(5).join()));
remainder = remainder.skip(5).toList();
return remainder;
});
return fiveDigitNumbers.isEmpty ? 0: fiveDigitNumbers.reduce((largest, number) => max(largest, number));
}
void main() {
print(solution('12345').toString());
}
错误:
FormatException:无效的数字(在字符1处)
^
堆栈跟踪:
dart:core int.parse
package:solution / solution.dart 8:30解决方案。
dart:collection _ListBase&Object&ListMixin.fold
package:solution / solution.dart 7:12解决方案
test / solution_test.dart 6:12 main。
答案 0 :(得分:0)
堆栈跟踪显示在第8行和第30列引发了异常,这是int.parse()
调用。 int.parse()
将为空字符串抛出该异常。连接空列表将产生一个空字符串。 remainder
列表在每个数字上进行迭代之前将为空。而是使用另一个循环构造,例如fold
。
while