Run-length encoding: Difference between revisions
Content added Content deleted
(Emacs Lisp: Completely rewrite solutions to something readable) |
(Emacs Lisp: Count first, then character) |
||
Line 2,294: | Line 2,294: | ||
(let* ((char (char-after (point))) |
(let* ((char (char-after (point))) |
||
(count (skip-chars-forward (string char)))) |
(count (skip-chars-forward (string char)))) |
||
(push (format " |
(push (format "%d%c" count char) output)))) |
||
(mapconcat #'identity (nreverse output) "")))</lang> |
(mapconcat #'identity (nreverse output) "")))</lang> |
||
Line 2,303: | Line 2,303: | ||
(let ((grouped (mapcar #'cdr (seq-group-by #'identity (string-to-list str))))) |
(let ((grouped (mapcar #'cdr (seq-group-by #'identity (string-to-list str))))) |
||
(apply #'concat (mapcar (lambda (items) |
(apply #'concat (mapcar (lambda (items) |
||
(format " |
(format "%d%c" (length items) (car items))) |
||
grouped))))</lang> |
grouped))))</lang> |
||