|
12 | 12 | "search" |
13 | 13 | ], |
14 | 14 | "contributors": [], |
15 | | - "code": "def binary_search(array, target)\n low = 0\n high = array.length - 1\n\n while low <= high\n mid = (low + high) / 2\n guess = array[mid]\n\n if guess == target\n return mid\n elsif guess > target\n high = mid - 1\n else\n low = mid + 1\n end\n end\n\n return nil\nend\n\n# Usage\narray = [1, 3, 5, 7, 9]\ntarget = 5\nresult = binary_search(array, target)\nputs result # Output: 2\n" |
| 15 | + "code": "def binary_search(array, target)\n low = 0\n high = array.length - 1\n\n while low <= high\n mid = (low + high) / 2\n guess = array[mid]\n\n if guess == target\n return mid\n elsif guess > target\n high = mid - 1\n else\n low = mid + 1\n end\n end\n\n return nil\nend\n\n# Usage:\narray = [1, 3, 5, 7, 9]\ntarget = 5\nresult = binary_search(array, target)\nputs result # Output: 2\n" |
16 | 16 | }, |
17 | 17 | { |
18 | 18 | "title": "Chunk Array", |
|
23 | 23 | "chunk" |
24 | 24 | ], |
25 | 25 | "contributors": [], |
26 | | - "code": "def chunk_array(array, size)\n array.each_slice(size).to_a\nend\n\n# Example usage:\narr = [1, 2, 3, 4, 5, 6, 7, 8, 9]\nchunked_arr = chunk_array(arr, 2)\nputs chunked_arr.inspect # Output: [[1, 2], [3, 4], [5, 6], [7, 8], [9]]\n" |
| 26 | + "code": "def chunk_array(array, size)\n array.each_slice(size).to_a\nend\n\n# Usage:\narr = [1, 2, 3, 4, 5, 6, 7, 8, 9]\nchunked_arr = chunk_array(arr, 2)\nputs chunked_arr.inspect # Output: [[1, 2], [3, 4], [5, 6], [7, 8], [9]]\n" |
27 | 27 | }, |
28 | 28 | { |
29 | 29 | "title": "Matrix Transpose", |
|
35 | 35 | "transpose" |
36 | 36 | ], |
37 | 37 | "contributors": [], |
38 | | - "code": "def transpose_matrix(matrix)\n return [] if matrix.empty?\n return [] if matrix.first.empty?\n\n matrix.first.zip(*matrix[1..-1])\nend\n\n# Usage\nmatrix = [\n [1, 2, 3],\n [4, 5, 6],\n [7, 8, 9]\n]\nprint transpose_matrix(matrix) # Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n" |
| 38 | + "code": "def transpose_matrix(matrix)\n return [] if matrix.empty?\n return [] if matrix.first.empty?\n\n matrix.first.zip(*matrix[1..-1])\nend\n\n# Usage:\nmatrix = [\n [1, 2, 3],\n [4, 5, 6],\n [7, 8, 9]\n]\nprint transpose_matrix(matrix) # Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n" |
39 | 39 | } |
40 | 40 | ] |
41 | 41 | }, |
|
56 | 56 | } |
57 | 57 | ] |
58 | 58 | }, |
59 | | - { |
60 | | - "categoryName": "Data Structures", |
61 | | - "snippets": [ |
62 | | - { |
63 | | - "title": "Binary Tree", |
64 | | - "description": "Implements a basic binary tree with in-order traversal.", |
65 | | - "author": "ACR1209", |
66 | | - "tags": [ |
67 | | - "data structures", |
68 | | - "binary tree" |
69 | | - ], |
70 | | - "contributors": [], |
71 | | - "code": "class TreeNode\n attr_accessor :data, :left, :right\n\n def initialize(data)\n @data = data\n @left = nil\n @right = nil\n end\nend\n\nclass BinaryTree\n attr_accessor :root\n\n def initialize(root_data)\n @root = TreeNode.new(root_data)\n end\n\n def in_order_traversal(node = @root, result = [])\n return result unless node\n\n in_order_traversal(node.left, result)\n result << node.data\n in_order_traversal(node.right, result)\n end\nend\n\n# Usage:\ntree = BinaryTree.new(10)\ntree.root.left = TreeNode.new(5)\ntree.root.right = TreeNode.new(15)\ntree.root.left.left = TreeNode.new(3)\n\nprint tree.in_order_traversal # Output: [3, 5, 10, 15]\n" |
72 | | - }, |
73 | | - { |
74 | | - "title": "Doubly Linked List", |
75 | | - "description": "Implements a doubly linked list with node insertion and traversal.", |
76 | | - "author": "ACR1209", |
77 | | - "tags": [ |
78 | | - "data structures", |
79 | | - "linked list", |
80 | | - "doubly linked list" |
81 | | - ], |
82 | | - "contributors": [], |
83 | | - "code": "class Node\n attr_accessor :data, :next, :prev\n\n def initialize(data)\n @data = data\n @next = nil\n @prev = nil\n end\nend\n\nclass DoublyLinkedList\n def initialize\n @head = nil\n @tail = nil\n end\n\n def append(data)\n new_node = Node.new(data)\n if @head.nil?\n @head = new_node\n @tail = new_node\n else\n @tail.next = new_node\n new_node.prev = @tail\n @tail = new_node\n end\n end\n\n def prepend(data)\n new_node = Node.new(data)\n if @head.nil?\n @head = new_node\n @tail = new_node\n else\n new_node.next = @head\n @head.prev = new_node\n @head = new_node\n end\n end\n\n def display_forward\n current = @head\n while current\n print \"#{current.data} <-> \"\n current = current.next\n end\n puts \"nil\"\n end\n\n def display_backward\n current = @tail\n while current\n print \"#{current.data} <-> \"\n current = current.prev\n end\n puts \"nil\"\n end\nend\n\n# Usage:\ndll = DoublyLinkedList.new\ndll.append(1)\ndll.append(2)\ndll.append(3)\ndll.display_forward # Output: 1 <-> 2 <-> 3 <-> nil\ndll.display_backward # Output: 3 <-> 2 <-> 1 <-> nil\n" |
84 | | - }, |
85 | | - { |
86 | | - "title": "Singly Linked List", |
87 | | - "description": "Implements a basic singly linked list with node insertion and traversal.", |
88 | | - "author": "ACR1209", |
89 | | - "tags": [ |
90 | | - "data structures", |
91 | | - "linked list" |
92 | | - ], |
93 | | - "contributors": [], |
94 | | - "code": "class Node\n attr_accessor :data, :next\n\n def initialize(data)\n @data = data\n @next = nil\n end\nend\n\nclass LinkedList\n def initialize\n @head = nil\n end\n\n def append(data)\n new_node = Node.new(data)\n if @head.nil?\n @head = new_node\n else\n current = @head\n current = current.next while current.next\n current.next = new_node\n end\n end\n\n def display\n current = @head\n while current\n print \"#{current.data} -> \"\n current = current.next\n end\n puts \"nil\"\n end\nend\n\n# Usage:\nlist = LinkedList.new\nlist.append(1)\nlist.append(2)\nlist.append(3)\nlist.display # Output: 1 -> 2 -> 3 -> nil\n" |
95 | | - } |
96 | | - ] |
97 | | - }, |
98 | 59 | { |
99 | 60 | "categoryName": "Error Handling", |
100 | 61 | "snippets": [ |
|
179 | 140 | "words" |
180 | 141 | ], |
181 | 142 | "contributors": [], |
182 | | - "code": "def capitalize_words(str)\n str.split.map(&:capitalize).join(' ')\nend\n\n# Usage\nsentence = \"ruby is awesome\"\nputs capitalize_words(sentence) # Output: \"Ruby Is Awesome\"\n" |
| 143 | + "code": "def capitalize_words(str)\n str.split.map(&:capitalize).join(' ')\nend\n\n# Usage:\nsentence = \"ruby is awesome\"\nputs capitalize_words(sentence) # Output: \"Ruby Is Awesome\"\n" |
183 | 144 | }, |
184 | 145 | { |
185 | 146 | "title": "Count Word Occurrences in String", |
|
191 | 152 | "word-count" |
192 | 153 | ], |
193 | 154 | "contributors": [], |
194 | | - "code": "def count_word_occurrences(text)\n words = text.downcase.scan(/\\w+/)\n occurrences = Hash.new(0)\n words.each { |word| occurrences[word] += 1 }\n occurrences\nend\n\n# Usage\ntext = \"ruby is awesome and Ruby is fun\"\nputs count_word_occurrences(text) # Output: {\"ruby\"=>2, \"is\"=>2, \"awesome\"=>1, \"and\"=>1, \"fun\"=>1}\n" |
| 155 | + "code": "def count_word_occurrences(text)\n words = text.downcase.scan(/\\w+/)\n occurrences = Hash.new(0)\n words.each { |word| occurrences[word] += 1 }\n occurrences\nend\n\n# Usage:\ntext = \"ruby is awesome and Ruby is fun\"\nputs count_word_occurrences(text) # Output: {\"ruby\"=>2, \"is\"=>2, \"awesome\"=>1, \"and\"=>1, \"fun\"=>1}\n" |
195 | 156 | }, |
196 | 157 | { |
197 | 158 | "title": "Remove Punctuation", |
|
203 | 164 | "remove" |
204 | 165 | ], |
205 | 166 | "contributors": [], |
206 | | - "code": "def remove_punctuation(str)\n str.gsub(/[[:punct:]]/, '')\nend\n\n# Usage\ntext = \"Hello, Ruby! How's it going?\"\nputs remove_punctuation(text) # Output: \"Hello Ruby Hows it going\"\n" |
| 167 | + "code": "def remove_punctuation(str)\n str.gsub(/[[:punct:]]/, '')\nend\n\n# Usage:\ntext = \"Hello, Ruby! How's it going?\"\nputs remove_punctuation(text) # Output: \"Hello Ruby Hows it going\"\n" |
207 | 168 | }, |
208 | 169 | { |
209 | 170 | "title": "Transform Camel Case to Snake Case", |
210 | | - "description": "Converts a Camel Case string to Snake case.", |
| 171 | + "description": "Converts a Camel or Pascal Case string to Snake case.", |
211 | 172 | "author": "ACR1209", |
212 | 173 | "tags": [ |
213 | 174 | "string", |
214 | 175 | "convert", |
215 | 176 | "camel-case", |
216 | | - "snake-case" |
| 177 | + "snake-case", |
| 178 | + "pascal-case" |
217 | 179 | ], |
218 | 180 | "contributors": [], |
219 | | - "code": "def camel_to_snake(str)\n str.gsub(/([A-Z])/, '_\\1').downcase\nend\n\n# Usage\ncamel_case = \"camelCaseToSnakeCase\"\nputs camel_to_snake(camel_case) # Output: \"camel_case_to_snake_case\"\n" |
| 181 | + "code": "def camel_to_snake(str)\n str.gsub(/([A-Z])/, '_\\1').sub(/^_/, '').downcase\nend\n\n# Usage:\ncamel_case = \"camelCaseToSnakeCase\"\npascal_case = \"PascalCaseToSnakeCase\"\nputs camel_to_snake(camel_case) # Output: \"camel_case_to_snake_case\"\nputs camel_to_snake(pascal_case) # Output: \"pascal_case_to_snake_case\"\n" |
220 | 182 | }, |
221 | 183 | { |
222 | 184 | "title": "Transform from Snake Case to Camel Case", |
|
229 | 191 | "camel-case" |
230 | 192 | ], |
231 | 193 | "contributors": [], |
232 | | - "code": "def snake_to_camel(str)\n str.split('_').map.with_index { |word, index| \n index == 0 ? word : word.capitalize \n }.join\nend\n\n# Usage\nsnake_case = \"snake_case_to_camel_case\"\nputs snake_to_camel(snake_case) # Output: \"snakeCaseToCamelCase\"\n" |
| 194 | + "code": "def snake_to_camel(str)\n str.split('_').map.with_index { |word, index| \n index == 0 ? word : word.capitalize \n }.join\nend\n\n# Usage:\nsnake_case = \"snake_case_to_camel_case\"\nputs snake_to_camel(snake_case) # Output: \"snakeCaseToCamelCase\"\n" |
| 195 | + }, |
| 196 | + { |
| 197 | + "title": "Transform from Snake Case to Pascal Case", |
| 198 | + "description": "Converts a Snake Case string to Pascal Case.", |
| 199 | + "author": "ACR1209", |
| 200 | + "tags": [ |
| 201 | + "string", |
| 202 | + "convert", |
| 203 | + "snake-case", |
| 204 | + "pascal-case" |
| 205 | + ], |
| 206 | + "contributors": [], |
| 207 | + "code": "def snake_to_camel(str)\n str.split('_').map.with_index { |word, index| \n word.capitalize \n }.join\nend\n\n# Usage:\nsnake_case = \"snake_case_to_pascal_case\"\nputs snake_to_camel(snake_case) # Output: \"SnakeCaseToPascalCase\"\n" |
233 | 208 | }, |
234 | 209 | { |
235 | 210 | "title": "Truncate String", |
|
240 | 215 | "truncate" |
241 | 216 | ], |
242 | 217 | "contributors": [], |
243 | | - "code": "def truncate_string(max_length, str)\n return str if str.length <= max_length\n str[0, max_length - 3] + '...'\nend\n\n# Usage\nlong_string = \"Ruby is a dynamic, open source programming language.\"\nputs truncate_string(20, long_string) # Output: \"Ruby is a dynamic...\"\nputs truncate_string(54, long_string) # Output: \"Ruby is a dynamic, open source programming language.\"\n" |
| 218 | + "code": "def truncate_string(str, max_length)\n return str if str.length <= max_length || max_length <= 3\n str[0, max_length - 3] + '...'\nend\n\n# Usage:\nlong_string = \"Ruby is a dynamic, open source programming language.\"\nputs truncate_string(20, long_string) # Output: \"Ruby is a dynamic...\"\nputs truncate_string(54, long_string) # Output: \"Ruby is a dynamic, open source programming language.\"\n" |
244 | 219 | } |
245 | 220 | ] |
246 | 221 | } |
|
0 commit comments