gitextract_m9961ttm/ ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── new_implementation.yml │ │ └── other.yml │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── pull_request.md │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── citk.yml │ ├── godocmd.yml │ ├── stale.yml │ └── upload_coverage_report.yml ├── .gitignore ├── .gitpod.dockerfile ├── .gitpod.yml ├── .golangci.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── STYLE.md ├── cache/ │ ├── lfu.go │ ├── lfu_test.go │ ├── lru.go │ └── lru_test.go ├── checksum/ │ ├── crc8.go │ ├── crc8_test.go │ ├── luhn.go │ └── luhn_test.go ├── cipher/ │ ├── caesar/ │ │ ├── caesar.go │ │ └── caesar_test.go │ ├── cipher_test.go │ ├── diffiehellman/ │ │ ├── diffiehellmankeyexchange.go │ │ └── diffiehellmankeyexchange_test.go │ ├── doc.go │ ├── dsa/ │ │ ├── dsa.go │ │ └── dsa_test.go │ ├── polybius/ │ │ ├── polybius.go │ │ └── polybius_test.go │ ├── railfence/ │ │ ├── railfence.go │ │ └── railfence_test.go │ ├── rot13/ │ │ ├── rot13.go │ │ └── rot13_test.go │ ├── rsa/ │ │ ├── rsa.go │ │ ├── rsa2.go │ │ ├── rsa2_test.go │ │ └── rsa_test.go │ ├── transposition/ │ │ ├── transposition.go │ │ └── transposition_test.go │ └── xor/ │ ├── xor.go │ └── xor_test.go ├── compression/ │ ├── huffmancoding.go │ ├── huffmancoding_test.go │ ├── rlecoding.go │ └── rlecoding_test.go ├── constraints/ │ └── constraints.go ├── conversion/ │ ├── base64.go │ ├── base64_test.go │ ├── binarytodecimal.go │ ├── binarytodecimal_test.go │ ├── conversion_test.go │ ├── decimaltobinary.go │ ├── decimaltobinary_test.go │ ├── doc.go │ ├── hexadecimaltobinary.go │ ├── hexadecimaltobinary_test.go │ ├── hexadecimaltodecimal.go │ ├── hexadecimaltodecimal_test.go │ ├── inttoroman.go │ ├── inttoroman_test.go │ ├── rgbhex.go │ ├── rgbhex_test.go │ ├── romantoint.go │ └── romantoint_test.go ├── dynamic/ │ ├── abbreviation.go │ ├── abbreviation_test.go │ ├── binomialcoefficient.go │ ├── binomialcoefficient_test.go │ ├── burstballoons.go │ ├── burstballoons_test.go │ ├── catalan.go │ ├── catalan_test.go │ ├── coinchange.go │ ├── coinchange_test.go │ ├── dicethrow.go │ ├── dicethrow_test.go │ ├── doc.go │ ├── dynamic_test.go │ ├── editdistance.go │ ├── editdistance_test.go │ ├── eggdropping.go │ ├── eggdropping_test.go │ ├── fibonacci.go │ ├── fibonacci_test.go │ ├── interleavingstrings.go │ ├── interleavingstrings_test.go │ ├── knapsack.go │ ├── knapsack_test.go │ ├── longestarithmeticsubsequence.go │ ├── longestarithmeticsubsequence_test.go │ ├── longestcommonsubsequence.go │ ├── longestcommonsubsequence_test.go │ ├── longestincreasingsubsequence.go │ ├── longestincreasingsubsequence_test.go │ ├── longestincreasingsubsequencegreedy.go │ ├── longestpalindromicsubsequence.go │ ├── longestpalindromicsubsequence_test.go │ ├── longestpalindromicsubstring.go │ ├── longestpalindromicsubstring_test.go │ ├── matrixmultiplication.go │ ├── maxsubarraysum.go │ ├── maxsubarraysum_test.go │ ├── optimalbst.go │ ├── optimalbst_test.go │ ├── partitionproblem.go │ ├── partitionproblem_test.go │ ├── rodcutting.go │ ├── rodcutting_test.go │ ├── subsetsum.go │ ├── subsetsum_test.go │ ├── tilingproblem.go │ ├── tilingproblem_test.go │ ├── traprainwater.go │ ├── traprainwater_test.go │ ├── uniquepaths.go │ ├── uniquepaths_test.go │ ├── wildcardmatching.go │ ├── wildcardmatching_test.go │ ├── wordbreak.go │ └── wordbreak_test.go ├── go.mod ├── go.sum ├── graph/ │ ├── articulationpoints.go │ ├── articulationpoints_test.go │ ├── bellmanford.go │ ├── bellmanford_test.go │ ├── breadthfirstsearch.go │ ├── breadthfirstsearch_test.go │ ├── coloring/ │ │ ├── backtracking.go │ │ ├── backtracking_test.go │ │ ├── bfs.go │ │ ├── bfs_test.go │ │ ├── bipartite.go │ │ ├── bipartite_test.go │ │ ├── doc.go │ │ ├── graph.go │ │ ├── graph_test.go │ │ ├── greedy.go │ │ └── greedy_test.go │ ├── cycle.go │ ├── cycle_test.go │ ├── depthfirstsearch.go │ ├── depthfirstsearch_test.go │ ├── dijkstra.go │ ├── dijkstra_test.go │ ├── doc.go │ ├── edmondkarp.go │ ├── edmondkarp_test.go │ ├── floydwarshall.go │ ├── floydwarshall_test.go │ ├── graph.go │ ├── graph_test.go │ ├── kahn.go │ ├── kahn_test.go │ ├── kosaraju.go │ ├── kosaraju_test.go │ ├── kruskal.go │ ├── kruskal_test.go │ ├── lowestcommonancestor.go │ ├── lowestcommonancestor_test.go │ ├── prim.go │ ├── prim_test.go │ ├── topological.go │ ├── topological_test.go │ ├── unionfind.go │ └── unionfind_test.go ├── hashing/ │ ├── doc.go │ ├── hashing_test.go │ ├── md5/ │ │ ├── md5.go │ │ └── md5_test.go │ ├── sha1/ │ │ ├── sha1.go │ │ └── sha1_test.go │ └── sha256/ │ ├── sha256.go │ └── sha256_test.go ├── math/ │ ├── abs.go │ ├── abs_test.go │ ├── aliquot_test.go │ ├── aliquotsum.go │ ├── armstrong/ │ │ ├── isarmstrong.go │ │ └── isarmstrong_test.go │ ├── binary/ │ │ ├── abs.go │ │ ├── abs_test.go │ │ ├── arithmeticmean.go │ │ ├── arithmeticmean_test.go │ │ ├── bitcounter.go │ │ ├── bitcounter_test.go │ │ ├── checkisnumberpoweroftwo.go │ │ ├── checkisnumberpoweroftwo_test.go │ │ ├── fast_inverse_sqrt.go │ │ ├── logarithm.go │ │ ├── logarithm_test.go │ │ ├── rbc.go │ │ ├── rbc_test.go │ │ ├── reversebits.go │ │ ├── reversebits_test.go │ │ ├── sqrt.go │ │ ├── sqrt_test.go │ │ ├── xorsearch.go │ │ └── xorsearch_test.go │ ├── binomialcoefficient.go │ ├── binomialcoefficient_test.go │ ├── catalan/ │ │ ├── catalannumber.go │ │ └── catalannumber_test.go │ ├── checkisnumberpoweroftwo.go │ ├── checkisnumberpoweroftwo_test.go │ ├── cos.go │ ├── cos_test.go │ ├── doc.go │ ├── eulertotient.go │ ├── eulertotient_test.go │ ├── factorial/ │ │ ├── factorial.go │ │ └── factorial_test.go │ ├── fibonacci/ │ │ ├── fibonacci.go │ │ └── fibonacci_test.go │ ├── gcd/ │ │ ├── extended.go │ │ ├── extended_test.go │ │ ├── extendedgcd.go │ │ ├── extendedgcd_test.go │ │ ├── extendedgcditerative.go │ │ ├── gcd.go │ │ ├── gcd_test.go │ │ └── gcditerative.go │ ├── geometry/ │ │ ├── distance.go │ │ ├── distance_test.go │ │ ├── straightlines.go │ │ └── straightlines_test.go │ ├── isautomorphic.go │ ├── isautomorphic_test.go │ ├── krishnamurthy.go │ ├── krishnamurthy_test.go │ ├── kthnumber.go │ ├── kthnumber_test.go │ ├── lcm/ │ │ ├── lcm.go │ │ └── lcm_test.go │ ├── lerp.go │ ├── lerp_test.go │ ├── liouville.go │ ├── liouville_test.go │ ├── math_test.go │ ├── matrix/ │ │ ├── add.go │ │ ├── add_test.go │ │ ├── checkequal.go │ │ ├── checkequal_test.go │ │ ├── copy.go │ │ ├── copy_test.go │ │ ├── determinant.go │ │ ├── determinant_test.go │ │ ├── isvalid.go │ │ ├── isvalid_test.go │ │ ├── matchdimensions.go │ │ ├── matchdimensions_test.go │ │ ├── matrix.go │ │ ├── matrix_test.go │ │ ├── multiply.go │ │ ├── multiply_test.go │ │ ├── strassenmatrixmultiply.go │ │ ├── strassenmatrixmultiply_test.go │ │ ├── string.go │ │ ├── string_test.go │ │ ├── submatrix.go │ │ ├── submatrix_test.go │ │ ├── subtract.go │ │ └── subtract_test.go │ ├── max/ │ │ ├── bitwisemax.go │ │ ├── bitwisemax_test.go │ │ ├── max.go │ │ └── max_test.go │ ├── mean.go │ ├── mean_test.go │ ├── median.go │ ├── median_test.go │ ├── min/ │ │ ├── bitwisemin.go │ │ ├── min.go │ │ └── min_test.go │ ├── mobius.go │ ├── mobius_test.go │ ├── mode.go │ ├── mode_test.go │ ├── modular/ │ │ ├── exponentiation.go │ │ ├── exponentiation_test.go │ │ ├── inverse.go │ │ └── inverse_test.go │ ├── moserdebruijnsequence/ │ │ ├── sequence.go │ │ └── sequence_test.go │ ├── pascal/ │ │ ├── pascaltriangle.go │ │ └── pascaltriangle_test.go │ ├── perfectnumber.go │ ├── perfectnumber_test.go │ ├── permutation/ │ │ ├── heaps.go │ │ ├── heaps_test.go │ │ ├── next_permutation.go │ │ └── next_permutation_test.go │ ├── pi/ │ │ ├── montecarlopi.go │ │ ├── montecarlopi_test.go │ │ ├── spigotpi.go │ │ └── spigotpi_test.go │ ├── pollard.go │ ├── pollard_test.go │ ├── power/ │ │ ├── fastexponent.go │ │ ├── fastexponent_test.go │ │ ├── powvialogarithm.go │ │ └── powvialogarithm_test.go │ ├── prime/ │ │ ├── millerrabintest.go │ │ ├── prime_test.go │ │ ├── primecheck.go │ │ ├── primefactorization.go │ │ ├── primefactorization_test.go │ │ ├── sieve.go │ │ ├── sieve2.go │ │ ├── sieve2_test.go │ │ ├── sieve_test.go │ │ ├── twin.go │ │ └── twin_test.go │ ├── pronicnumber.go │ ├── pronicnumber_test.go │ ├── pythagoras/ │ │ ├── pythagoras.go │ │ └── pythagoras_test.go │ ├── sin.go │ └── sin_test.go ├── other/ │ ├── doc.go │ ├── maxsubarraysum/ │ │ ├── maxsubarraysum.go │ │ └── maxsubarraysum_test.go │ ├── nested/ │ │ ├── nestedbrackets.go │ │ └── nestedbrackets_test.go │ ├── other_test.go │ └── password/ │ └── generator.go ├── project_euler/ │ ├── problem_1/ │ │ ├── problem1.go │ │ └── problem1_test.go │ ├── problem_10/ │ │ ├── problem10.go │ │ └── problem10_test.go │ ├── problem_11/ │ │ ├── problem11.go │ │ └── problem11_test.go │ ├── problem_12/ │ │ ├── problem12.go │ │ └── problem12_test.go │ ├── problem_13/ │ │ ├── problem13.go │ │ └── problem13_test.go │ ├── problem_14/ │ │ ├── problem14.go │ │ └── problem14_test.go │ ├── problem_15/ │ │ ├── problem15.go │ │ └── problem15_test.go │ ├── problem_16/ │ │ ├── problem16.go │ │ └── problem16_test.go │ ├── problem_17/ │ │ ├── input.go │ │ ├── problem17.go │ │ └── problem17_test.go │ ├── problem_18/ │ │ ├── edge.go │ │ ├── input.go │ │ ├── leaf.go │ │ ├── problem18.go │ │ ├── problem18_test.go │ │ ├── root.go │ │ └── tree.go │ ├── problem_19/ │ │ ├── problem19.go │ │ └── problem19_test.go │ ├── problem_2/ │ │ ├── problem2.go │ │ └── problem2_test.go │ ├── problem_20/ │ │ ├── problem20.go │ │ └── problem20_test.go │ ├── problem_3/ │ │ ├── problem3.go │ │ └── problem3_test.go │ ├── problem_4/ │ │ ├── problem4.go │ │ └── problem4_test.go │ ├── problem_5/ │ │ ├── problem5.go │ │ └── problem5_test.go │ ├── problem_6/ │ │ ├── problem6.go │ │ └── problem6_test.go │ ├── problem_7/ │ │ ├── problem7.go │ │ └── problem7_test.go │ ├── problem_8/ │ │ ├── problem8.go │ │ └── problem8_test.go │ └── problem_9/ │ ├── problem9.go │ └── problem9_test.go ├── search/ │ ├── binary.go │ ├── binary_test.go │ ├── doc.go │ ├── errors.go │ ├── interpolation.go │ ├── interpolation_test.go │ ├── jump.go │ ├── jump2.go │ ├── jump2_test.go │ ├── jump_test.go │ ├── linear.go │ ├── linear_test.go │ ├── selectk.go │ ├── selectk_test.go │ ├── ternary.go │ ├── ternary_test.go │ └── testcases.go ├── sort/ │ ├── binaryinsertionsort.go │ ├── bogosort.go │ ├── bubblesort.go │ ├── bucketsort.go │ ├── circlesort.go │ ├── cocktailsort.go │ ├── combSort.go │ ├── countingsort.go │ ├── cyclesort.go │ ├── doc.go │ ├── exchangesort.go │ ├── heapsort.go │ ├── insertionsort.go │ ├── mergesort.go │ ├── oddevensort.go │ ├── pancakesort.go │ ├── patiencesort.go │ ├── pigeonholesort.go │ ├── quicksort.go │ ├── radixsort.go │ ├── selectionsort.go │ ├── shellsort.go │ ├── simplesort.go │ ├── sorts_test.go │ ├── stooge_sort.go │ └── timsort.go ├── sqrt/ │ ├── sqrtdecomposition.go │ └── sqrtdecomposition_test.go ├── strings/ │ ├── ahocorasick/ │ │ ├── advancedahocorasick.go │ │ ├── advancedahocorasick_test.go │ │ ├── ahocorasick.go │ │ ├── ahocorasick_test.go │ │ ├── patterns.txt │ │ ├── shared.go │ │ └── text.txt │ ├── bom/ │ │ └── bom.go │ ├── charoccurrence.go │ ├── charoccurrence_test.go │ ├── combination/ │ │ └── combination.go │ ├── doc.go │ ├── generateparentheses/ │ │ ├── generateparentheses.go │ │ └── generateparentheses_test.go │ ├── genetic/ │ │ ├── genetic.go │ │ └── geneticalgorithm_test.go │ ├── guid/ │ │ ├── guid.go │ │ └── guid_test.go │ ├── hamming/ │ │ ├── hammingdistance.go │ │ └── hammingdistance_test.go │ ├── horspool/ │ │ ├── horspool.go │ │ └── horspool_test.go │ ├── isisogram.go │ ├── isisogram_test.go │ ├── issubsequence.go │ ├── issubsequence_test.go │ ├── kmp/ │ │ ├── kmp.go │ │ └── kmp_test.go │ ├── levenshtein/ │ │ ├── levenshteindistance.go │ │ └── levenshteindistance_test.go │ ├── manacher/ │ │ ├── longestpalindrome.go │ │ └── longestpalindrome_test.go │ ├── palindrome/ │ │ ├── ispalindrome.go │ │ └── ispalindrome_test.go │ ├── pangram/ │ │ ├── ispangram.go │ │ └── ispangram_test.go │ ├── parenthesis/ │ │ ├── parenthesis.go │ │ └── parenthesis_test.go │ ├── search/ │ │ ├── boyermoore.go │ │ ├── naive.go │ │ └── patternsearch_test.go │ └── strings_test.go └── structure/ ├── circularqueue/ │ ├── circularqueue_test.go │ └── circularqueuearray.go ├── deque/ │ ├── deque.go │ └── deque_test.go ├── doc.go ├── dynamicarray/ │ ├── dynamicarray.go │ └── dynamicarray_test.go ├── fenwicktree/ │ ├── fenwicktree.go │ └── fenwicktree_test.go ├── hashmap/ │ ├── hashmap.go │ └── hashmap_test.go ├── heap/ │ ├── heap.go │ └── heap_test.go ├── linkedlist/ │ ├── Readme.md │ ├── cyclic.go │ ├── cyclic_test.go │ ├── doc.go │ ├── doubly.go │ ├── doubly_test.go │ ├── shared.go │ ├── singlylinkedlist.go │ └── singlylinkedlist_test.go ├── queue/ │ ├── queue_test.go │ ├── queuearray.go │ ├── queuelinkedlist.go │ └── queuelinklistwithlist.go ├── segmenttree/ │ ├── segmenttree.go │ └── segmenttree_test.go ├── set/ │ ├── set.go │ ├── set_test.go │ └── setexample_test.go ├── stack/ │ ├── stack_test.go │ ├── stackarray.go │ ├── stacklinkedlist.go │ └── stacklinkedlistwithlist.go ├── structure_test.go ├── tree/ │ ├── avl.go │ ├── avl_test.go │ ├── bstree.go │ ├── bstree_test.go │ ├── btree.go │ ├── btree_test.go │ ├── example_test.go │ ├── rbtree.go │ ├── rbtree_test.go │ ├── tree.go │ └── tree_test.go └── trie/ ├── trie.go ├── trie_bench_test.go ├── trie_test.go └── trieexample_test.go