This is the fastest and best so far: proc commonPrefix*(paths: openArray[string], sep = "/"): string = if len(paths) == 0: return "" let first = paths[0] var index = -1 block loop: for i in 0 ..< len(first): for j in 1 .. paths.high(): let path = paths[j] if i < len(path) and first[i] != path[i]: break loop index = i if index == -1: return "" else: return first[0 .. first.rfind(sep, 0, index)] Run
- A path commonPrefix function marks
- Re: A path commonPrefix function SolitudeSF
- Re: A path commonPrefix function demotomohiro
- Re: A path commonPrefix function marks
- Re: A path commonPrefix function cblake
- Re: A path commonPrefix function marks
- Re: A path commonPrefix function marks
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... Araq
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... marks
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... marks
- Re: A path commonPrefix functio... cblake
- Re: A path commonPrefix functio... e