How to resolve the algorithm Find common directory path step by step in the Common Lisp programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Find common directory path step by step in the Common Lisp programming language
Table of Contents
Problem Statement
Create a routine that, given a set of strings representing directory paths and a single character directory separator, will return a string representing that part of the directory tree that is common to all the directories. Test your routine using the forward slash '/' character as the directory separator and the following three strings as input paths: Note: The resultant path should be the valid directory '/home/user1/tmp' and not the longest common string '/home/user1/tmp/cove'. If your language has a routine that performs this function (even if it does not have a changeable separator character), then mention it as part of the task.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Find common directory path step by step in the Common Lisp programming language
Source code in the common programming language
(defun common-directory-path (&rest paths)
(do* ((pathnames (mapcar #'(lambda (path) (cdr (pathname-directory (pathname path)))) paths)) ; convert strings to lists of subdirectories
(rem pathnames (cdr rem))
(pos (length (first rem))) ) ; position of first mismatched element
((null (cdr rem)) (make-pathname :directory (cons :absolute (subseq (first pathnames) 0 pos)))) ; take the common sublists and convert back to a pathname
(setq pos (min pos (mismatch (first rem) (second rem) :test #'string-equal))) )) ; compare two paths
You may also check:How to resolve the algorithm Go Fish step by step in the Raku programming language
You may also check:How to resolve the algorithm Hofstadter-Conway $10,000 sequence step by step in the Oz programming language
You may also check:How to resolve the algorithm Conditional structures step by step in the Lua programming language
You may also check:How to resolve the algorithm Command-line arguments step by step in the Oforth programming language
You may also check:How to resolve the algorithm The Twelve Days of Christmas step by step in the Jsish programming language