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
