Ravi
BAN USER(defn num-counter [x]
(let [[st ch count] (reduce (fn [acc element]
(let [r (acc 0) ;result until now
l (acc 1) ;last element
c (acc 2)] ;number of times last element has been seen until now
(cond (nil? l) [r element 1]
(= l element) [r l (+ c 1)]
:else (if (nil? r) [(format "%s%s" c l) element 1] [(format "%s%s%s" r c l) element 1]))))
[nil nil 0] ;reduce function start value
(into [] (.toCharArray x)))] ;convert given string to char vector
(if (nil? st) (format "%s%s" count ch) (format "%s%s%s" st count ch))))
(defn get-nth [n x]
(last (take n (iterate num-counter x))))
To test, try (get-nth 10 "1")
- Ravi May 13, 2015
What does have an asterisk in left input imply? Should we be able to match regex to regex?
- Ravi August 07, 2015