@@ -10,12 +10,12 @@ you to become a better programmer and improve your chance of getting a new job b
10
10
11
11
Each puzzle is located in separate package and it contains 3 main files ([ screen] ( ./misc/image/SampleTask.png ) ):
12
12
- ` desc.md ` - the task description.
13
- - ` Puzzle .kt` - an empty method/class where puzzle should be solved. This file also contains helper methods and a set of
13
+ - ` desc .kt` - an empty method/class where puzzle should be solved. This file also contains set of test and ocasionally helper methods.
14
14
[ JUnit] ( https://junit.org/junit4/ ) tests which verify that task was solved correctly.
15
- - ` Solution .kt` - a file containing one or more solutions.
15
+ - ` solution .kt` - a file containing one or more solutions.
16
16
17
17
Keep in mind that each puzzle will usually have more than one solution. Even simple puzzles like
18
- [ String reversal] ( src/test/kotlin/com/igorwojda/string/reverse/Reverse .md ) can be solved in
18
+ [ String reversal] ( src/test/kotlin/com/igorwojda/string/reverse/desc .md ) can be solved in
19
19
[ 10 different ways] ( https://eddmann.com/posts/ten-ways-to-reverse-a-string-in-javascript/ ) . Usually, we compare various
20
20
solutions using
21
21
([ Big O notation] ( https://medium.com/karuna-sehgal/a-simplified-explanation-of-the-big-o-notation-82523585e835 ) ) to
@@ -31,91 +31,91 @@ determine space/time complexity and we look at code readability.
31
31
# Let's solve some puzzles
32
32
33
33
Puzzles below are segregated by different difficulties. The repository also contains puzzles grouped by
34
- [ problem type] ( misc/PuzzleGroups.md ) and [ problem add order ] ( misc/PuzzleOrder .md) .
34
+ [ problem type] ( misc/desc .md ) .
35
35
36
36
Some puzzles may contain a reference to other puzzles that should be solved before to have a better understanding of the
37
37
problem. To succeed you need to practice often, repeat the same puzzles multiple times and be persistent over time. Take
38
38
your time before you take a look at the presented solution. ** Good luck!**
39
39
40
40
** New in Town**
41
41
42
- - [ Capitalize sentence] ( src/test/kotlin/com/igorwojda/string/capitalizesentence/CapitalizeSentence .md )
43
- - [ Get odd numbers] ( src/test/kotlin/com/igorwojda/integer/getodd/GetOdd .md )
44
- - [ Range contains range?] ( src/test/kotlin/com/igorwojda/range/containsrange/ContainsRange .md )
45
- - [ Add up to] ( src/test/kotlin/com/igorwojda/integer/addupto/AddUpTo .md )
46
- - [ Linear search] ( src/test/kotlin/com/igorwojda/list/search/linearsearch/LinearSearch .md )
47
- - [ Count down] ( src/test/kotlin/com/igorwojda/integer/countdown/CountDown .md )
48
- - [ Count up and down] ( src/test/kotlin/com/igorwojda/integer/countupanddown/CountUpAndDown .md )
49
- - [ Format train route] ( src/test/kotlin/com/igorwojda/list/formattrainroute/FormatTrainRoute .md )
50
- - [ Generate all pairs] ( src/test/kotlin/com/igorwojda/integer/generateallpairs/GenerateAllPairs .md )
51
- - [ Count unique values] ( src/test/kotlin/com/igorwojda/list/countuniquevalues/CountUniqueValues .md )
52
- - [ Print number] ( src/test/kotlin/com/igorwojda/integer/printnumber/basic/PrintNumber .md )
53
- - [ Print number with steps] ( src/test/kotlin/com/igorwojda/integer/printnumber/steps/PrintNumberWithSteps .md )
54
- - [ Power] ( src/test/kotlin/com/igorwojda/integer/power/Power .md )
55
- - [ Factorial] ( src/test/kotlin/com/igorwojda/integer/factorial/Factorial .md )
56
- - [ Product] ( src/test/kotlin/com/igorwojda/list/product/Product .md )
57
- - [ Capitalize first] ( src/test/kotlin/com/igorwojda/list/capitalizeFirst/CapitalizeFirst .md )
58
- - [ Decapitalize const] ( src/test/kotlin/com/igorwojda/string/decapitalizeconst/DecapitalizeConst .md )
59
- - [ Longest word] ( src/test/kotlin/com/igorwojda/string/longestword/LongestWord .md )
42
+ - [ Capitalize sentence] ( src/test/kotlin/com/igorwojda/string/capitalizesentence/desc .md )
43
+ - [ Get odd numbers] ( src/test/kotlin/com/igorwojda/integer/getodd/desc .md )
44
+ - [ Range contains range?] ( src/test/kotlin/com/igorwojda/range/containsrange/desc .md )
45
+ - [ Add up to] ( src/test/kotlin/com/igorwojda/integer/addupto/desc .md )
46
+ - [ Linear search] ( src/test/kotlin/com/igorwojda/list/search/linearsearch/desc .md )
47
+ - [ Count down] ( src/test/kotlin/com/igorwojda/integer/countdown/desc .md )
48
+ - [ Count up and down] ( src/test/kotlin/com/igorwojda/integer/countupanddown/desc .md )
49
+ - [ Format train route] ( src/test/kotlin/com/igorwojda/list/formattrainroute/desc .md )
50
+ - [ Generate all pairs] ( src/test/kotlin/com/igorwojda/integer/generateallpairs/desc .md )
51
+ - [ Count unique values] ( src/test/kotlin/com/igorwojda/list/countuniquevalues/desc .md )
52
+ - [ Print number] ( src/test/kotlin/com/igorwojda/integer/printnumber/basic/desc .md )
53
+ - [ Print number with steps] ( src/test/kotlin/com/igorwojda/integer/printnumber/steps/desc .md )
54
+ - [ Power] ( src/test/kotlin/com/igorwojda/integer/power/desc .md )
55
+ - [ Factorial] ( src/test/kotlin/com/igorwojda/integer/factorial/desc .md )
56
+ - [ Product] ( src/test/kotlin/com/igorwojda/list/product/desc .md )
57
+ - [ Capitalize first] ( src/test/kotlin/com/igorwojda/list/capitalizeFirst/desc .md )
58
+ - [ Decapitalize const] ( src/test/kotlin/com/igorwojda/string/decapitalizeconst/desc .md )
59
+ - [ Longest word] ( src/test/kotlin/com/igorwojda/string/longestword/desc .md )
60
60
61
61
** Apprentice**
62
62
63
- - [ Is palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/basic/IsPalindrome .md )
64
- - [ Is tolerant palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/tolerant/IsTolerantPalindrome .md )
65
- - [ Is permutation palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/permutation/IsPermutationPalindrome .md )
66
- - [ Is anagram] ( src/test/kotlin/com/igorwojda/string/isanagram/IsAnagram .md )
67
- - [ Max occurring char] ( src/test/kotlin/com/igorwojda/string/maxchar/MaxOccurrentChar .md )
68
- - [ String reverse] ( src/test/kotlin/com/igorwojda/string/reverse/Reverse .md )
69
- - [ Find the vowels] ( src/test/kotlin/com/igorwojda/string/vowels/Vowels .md )
70
- - [ Int reverse] ( src/test/kotlin/com/igorwojda/integer/reverse/Reverse .md )
71
- - [ Pyramid generator] ( src/test/kotlin/com/igorwojda/integer/pyramidgenerator/PyramidGenerator .md )
72
- - [ Steps generator] ( src/test/kotlin/com/igorwojda/integer/stepsgenerator/StepsGenerator .md )
73
- - [ Fizz Buzz] ( src/test/kotlin/com/igorwojda/integer/fizzbuzz/FizzBuzz .md )
74
- - [ Caesar Cipher] ( src/test/kotlin/com/igorwojda/string/caesarcipher/CaesarCipher .md )
75
- - [ Has repeated char] ( src/test/kotlin/com/igorwojda/string/hasrepeatedcharacter/HasRepeatedChar .md )
63
+ - [ Is palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/basic/desc .md )
64
+ - [ Is tolerant palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/tolerant/desc .md )
65
+ - [ Is permutation palindrome] ( src/test/kotlin/com/igorwojda/string/ispalindrome/permutation/desc .md )
66
+ - [ Is anagram] ( src/test/kotlin/com/igorwojda/string/isanagram/desc .md )
67
+ - [ Max occurring char] ( src/test/kotlin/com/igorwojda/string/maxchar/desc .md )
68
+ - [ String reverse] ( src/test/kotlin/com/igorwojda/string/reverse/desc .md )
69
+ - [ Find the vowels] ( src/test/kotlin/com/igorwojda/string/vowels/desc .md )
70
+ - [ Int reverse] ( src/test/kotlin/com/igorwojda/integer/reverse/desc .md )
71
+ - [ Pyramid generator] ( src/test/kotlin/com/igorwojda/integer/pyramidgenerator/desc .md )
72
+ - [ Steps generator] ( src/test/kotlin/com/igorwojda/integer/stepsgenerator/desc .md )
73
+ - [ Fizz Buzz] ( src/test/kotlin/com/igorwojda/integer/fizzbuzz/desc .md )
74
+ - [ Caesar Cipher] ( src/test/kotlin/com/igorwojda/string/caesarcipher/desc .md )
75
+ - [ Has repeated char] ( src/test/kotlin/com/igorwojda/string/hasrepeatedcharacter/desc .md )
76
76
77
77
** Warrior**
78
78
79
- - [ Spiral matrix generator] ( src/test/kotlin/com/igorwojda/integer/spiralmatrixgenerator/SpiralMatrixGenerator .md )
80
- - [ Queue] ( src/test/kotlin/com/igorwojda/queue/basic/Queue .md )
81
- - [ Combine queues] ( src/test/kotlin/com/igorwojda/queue/combine/Combine .md )
82
- - [ Stack] ( src/test/kotlin/com/igorwojda/stack/basic/Stack .md )
83
- - [ Bubble sort] ( src/test/kotlin/com/igorwojda/list/sort/bubblesort/BubbleSort .md )
84
- - [ Selection sort] ( src/test/kotlin/com/igorwojda/list/sort/selectionsort/SelectionSort .md )
85
- - [ Square equals] ( src/test/kotlin/com/igorwojda/list/squareequal/SquareEquals .md )
86
- - [ Sum zero] ( src/test/kotlin/com/igorwojda/list/sumzero/SumZero .md )
87
- - [ Digit frequency] ( src/test/kotlin/com/igorwojda/integer/digitfrequency/DigitFrequency .md )
88
- - [ Get duplicated arguments] ( src/test/kotlin/com/igorwojda/string/getduplicatedarguments/GetDuplicatedArguments .md )
89
- - [ Find pair with target average] ( src/test/kotlin/com/igorwojda/list/pairaverage/PairAverage .md )
90
- - [ Binary search tree] ( src/test/kotlin/com/igorwojda/tree/binarysearchtree/BinarySearchTree .md )
91
- - [ Tree traversal] ( src/test/kotlin/com/igorwojda/tree/classic/traversal/TreeTraversal .md )
92
- - [ Tree level width] ( src/test/kotlin/com/igorwojda/tree/classic/levelwidth/LevelWidth .md )
93
- - [ Binary search tree (insert)] ( src/test/kotlin/com/igorwojda/binarytree/insert/Insert .md )
94
- - [ Binary search tree (validate)] ( src/test/kotlin/com/igorwojda/binarytree/validate/Validate .md )
95
- - [ Any callback] ( src/test/kotlin/com/igorwojda/various/anycallback/AnyCallback .md )
96
- - [ Flatten] ( src/test/kotlin/com/igorwojda/list/flatten/Flatten .md )
97
- - [ Binary search] ( src/test/kotlin/com/igorwojda/list/search/binarysearch/BinarySearch .md )
98
- - [ Surrounded letter] ( src/test/kotlin/com/igorwojda/string/surroundedletter/SurroundedLetter .md )
99
- - [ Insertion sort] ( src/test/kotlin/com/igorwojda/list/sort/insertionsort/InsertionSort .md )
100
- - [ Quick sort] ( src/test/kotlin/com/igorwojda/list/sort/quicksort/QuickSort .md )
101
- - [ Radix sort] ( src/test/kotlin/com/igorwojda/list/sort/radixsort/RadixSort .md )
102
- - [ Doubly linked list] ( src/test/kotlin/com/igorwojda/linkedlist/doubly/base/DoublyLinkedList .md )
103
- - [ Max binary heap] ( src/test/kotlin/com/igorwojda/tree/heap/maxbinaryheap/MaxBinaryHeap .md )
79
+ - [ Spiral matrix generator] ( src/test/kotlin/com/igorwojda/integer/spiralmatrixgenerator/desc .md )
80
+ - [ Queue] ( src/test/kotlin/com/igorwojda/queue/basic/desc .md )
81
+ - [ Combine queues] ( src/test/kotlin/com/igorwojda/queue/combine/desc .md )
82
+ - [ Stack] ( src/test/kotlin/com/igorwojda/stack/basic/desc .md )
83
+ - [ Bubble sort] ( src/test/kotlin/com/igorwojda/list/sort/bubblesort/desc .md )
84
+ - [ Selection sort] ( src/test/kotlin/com/igorwojda/list/sort/selectionsort/desc .md )
85
+ - [ Square equals] ( src/test/kotlin/com/igorwojda/list/squareequal/desc .md )
86
+ - [ Sum zero] ( src/test/kotlin/com/igorwojda/list/sumzero/desc .md )
87
+ - [ Digit frequency] ( src/test/kotlin/com/igorwojda/integer/digitfrequency/desc .md )
88
+ - [ Get duplicated arguments] ( src/test/kotlin/com/igorwojda/string/getduplicatedarguments/desc .md )
89
+ - [ Find pair with target average] ( src/test/kotlin/com/igorwojda/list/pairaverage/desc .md )
90
+ - [ Binary search tree] ( src/test/kotlin/com/igorwojda/tree/binarysearchtree/desc .md )
91
+ - [ Tree traversal] ( src/test/kotlin/com/igorwojda/tree/classic/traversal/desc .md )
92
+ - [ Tree level width] ( src/test/kotlin/com/igorwojda/tree/classic/levelwidth/desc .md )
93
+ - [ Binary search tree (insert)] ( src/test/kotlin/com/igorwojda/binarytree/insert/desc .md )
94
+ - [ Binary search tree (validate)] ( src/test/kotlin/com/igorwojda/binarytree/validate/desc .md )
95
+ - [ Any callback] ( src/test/kotlin/com/igorwojda/various/anycallback/desc .md )
96
+ - [ Flatten] ( src/test/kotlin/com/igorwojda/list/flatten/desc .md )
97
+ - [ Binary search] ( src/test/kotlin/com/igorwojda/list/search/binarysearch/desc .md )
98
+ - [ Surrounded letter] ( src/test/kotlin/com/igorwojda/string/surroundedletter/desc .md )
99
+ - [ Insertion sort] ( src/test/kotlin/com/igorwojda/list/sort/insertionsort/desc .md )
100
+ - [ Quick sort] ( src/test/kotlin/com/igorwojda/list/sort/quicksort/desc .md )
101
+ - [ Radix sort] ( src/test/kotlin/com/igorwojda/list/sort/radixsort/desc .md )
102
+ - [ Doubly linked list] ( src/test/kotlin/com/igorwojda/linkedlist/doubly/base/desc .md )
103
+ - [ Max binary heap] ( src/test/kotlin/com/igorwojda/tree/heap/maxbinaryheap/desc .md )
104
104
105
105
** Commander**
106
106
107
- - [ List chunk] ( src/test/kotlin/com/igorwojda/list/listchunk/ListChunk .md )
108
- - [ Singly linked list] ( src/test/kotlin/com/igorwojda/linkedlist/singly/base/SinglyLinkedList .md )
109
- - [ Linked list midpoint] ( src/test/kotlin/com/igorwojda/linkedlist/singly/midpoint/Midpoint .md )
110
- - [ Circular check] ( src/test/kotlin/com/igorwojda/linkedlist/singly/circularcheck/CircularCheck .md )
111
- - [ Linked list take n-th element from last] ( src/test/kotlin/com/igorwojda/linkedlist/singly/fromlast/FromLast .md )
112
- - [ Is sub string] ( src/test/kotlin/com/igorwojda/string/issubstring/IsSubstring .md )
113
- - [ Merge sort] ( src/test/kotlin/com/igorwojda/list/sort/mergesort/MergeSort .md )
114
- - [ Fibonacci] ( src/test/kotlin/com/igorwojda/integer/fibonacci/basic/Fibonacci .md )
115
- - [ Fibonacci with recursive cache] ( src/test/kotlin/com/igorwojda/integer/fibonacci/recursivecached/FibonacciRecursiveCached .md )
116
- - [ Max sub list sum] ( src/test/kotlin/com/igorwojda/list/maxsublistsum/MaxSubListSum .md )
117
- - [ Min sub list length] ( src/test/kotlin/com/igorwojda/list/minsublistlength/MinSubListLength .md )
118
- - [ Subtract] ( src/test/kotlin/com/igorwojda/list/subtract/Subtract .md )
107
+ - [ List chunk] ( src/test/kotlin/com/igorwojda/list/listchunk/desc .md )
108
+ - [ Singly linked list] ( src/test/kotlin/com/igorwojda/linkedlist/singly/base/desc .md )
109
+ - [ Linked list midpoint] ( src/test/kotlin/com/igorwojda/linkedlist/singly/midpoint/desc .md )
110
+ - [ Circular check] ( src/test/kotlin/com/igorwojda/linkedlist/singly/circularcheck/desc .md )
111
+ - [ Linked list take n-th element from last] ( src/test/kotlin/com/igorwojda/linkedlist/singly/fromlast/desc .md )
112
+ - [ Is sub string] ( src/test/kotlin/com/igorwojda/string/issubstring/desc .md )
113
+ - [ Merge sort] ( src/test/kotlin/com/igorwojda/list/sort/mergesort/desc .md )
114
+ - [ Fibonacci] ( src/test/kotlin/com/igorwojda/integer/fibonacci/basic/desc .md )
115
+ - [ Fibonacci with recursive cache] ( src/test/kotlin/com/igorwojda/integer/fibonacci/recursivecached/desc .md )
116
+ - [ Max sub list sum] ( src/test/kotlin/com/igorwojda/list/maxsublistsum/desc .md )
117
+ - [ Min sub list length] ( src/test/kotlin/com/igorwojda/list/minsublistlength/desc .md )
118
+ - [ Subtract] ( src/test/kotlin/com/igorwojda/list/subtract/desc .md )
119
119
120
120
# Useful links
121
121
0 commit comments