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 "%c%d" char count) output))))
(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 "%c%d" (car items) (length items)))
(format "%d%c" (length items) (car items)))
grouped))))</lang>
grouped))))</lang>