Skip to content

Apokalip/ALG_C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALG_C

ALG_C personal test private

ALG_C compression based Manta_Coding_Challenge.pdf

There are 2 solutions: one based on strings, and one based on vectors. Both are multithreaded(parallel). encode_alg_c_proc() for the string "naive" approach encode_alg_c_vec_proc() for the vector based

String Solution follow the example given in the PDF and tries to take the largest pattern which is closest to the main iterating "cursor". In this solution was the "naive" solution following the example.

Vector solution is faster and safer as it works properly on utf8 , on strings that are smaller than 50 chars, String solution may seem faster because of the creation of vectors, but the vector solution scales a lot better. The Vector solution showed 20-30% better performance using 100k length random generated string.

The best and safest solution would be using Graphemes, but as a test external libraries/modules/crates are not recommended. I tried to stick to the standalone and things I wrote on the spot. Implementing Graphemes on the spot would have taken a lot more time than the allowed time so I did not go that route.

*Forgot to adapt decode function for utf8, should be done the same but using char.len_utf8() to make sure the slices are the right size. Should work properly with alphanumerics.

About

ALG_C personal test private

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages