Advertisement
Guest User

Untitled

a guest
Apr 21st, 2014
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.45 KB | None | 0 0
  1. (defun validate-dp (password words)
  2.   (let ((v (make-array (1+ (length password)) :initial-element nil)))
  3.     (setf (aref v 0) t)
  4.     (loop for i upto (length password) do
  5.       (loop for w in words do
  6.         (let ((lw (length w)))
  7.           (if (and (<= lw i) (string= w (subseq password (- i lw) i)) (elt v (- i lw)))
  8.             (setf (aref v i) w)))))
  9.     (if (aref v (- (length v) 1))
  10.       (coerce (remove nil (remove T v)) 'list)
  11.       nil)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement