longestCommonPrefix static method

String? longestCommonPrefix(
  1. List<String> paths
)

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;
}