longestCommonPrefix static method
Returns the longest common prefix shared by all paths.
Comparison is case-sensitive. Returns null when paths is empty
or no common prefix exists.
Implementation
static String? longestCommonPrefix(List<String> paths) {
if (paths.isEmpty) {
return null;
}
final prefix = paths.skip(1).fold<String?>(paths.first, (pre, s) {
if (pre == null || pre.isEmpty) {
return null;
}
final end = pre.length < s.length ? pre.length : s.length;
final j =
Iterable<int>.generate(end).takeWhile((i) => pre[i] == s[i]).length;
return j > 0 ? pre.substring(0, j) : null;
});
return prefix;
}