Hello! I've finally finished my solution: http://paste.factorcode.org/paste?id=3852
I took a different approach. Instead of manipulating the source input string I create a hash table of all character positions, then remove and add items to it as I go until it's empty. Output is collected as a side-effect of that process in a global variable. This approach combines sub-par performance with difficult-to-read code. On my machine the solve2 word runs in 28.5 seconds, compared to Sankaranarayan's 2.6 seconds, and Bjoern's 3.28 seconds. (Jon's solution never completes: Factor terminates without an error message after about 20 minutes of work.) I think the approach is interesting, but the performance seems to suffer due to the many searches, sorts and hash table manipulations. Apparently, working directly over the one input string is faster. After initially implementing a solution with 6 global variables, I managed to reduce the number to 1 by moving stuff around and using locals. This was fun, and quite easy, although this one time I got the order of arguments wrong and had a hard time finding the cause. Apparently, it's not so easy to simulate code runs when locals are used: you can't just populate stack in the Listener and paste pieces of code into it. Overall, this was a useful excersise in learning Factor. Thank you, Sankaranarayan! ---=====--- Александр ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140 _______________________________________________ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk