Yet another LeetCode solution repo. It uses RSpec for test-driven development.
clone this repo: $ git clone git@github.com:marwei/leetcode.git
install a couple of gems $ bundle install
initialize RSpec $ rspec --init
(or not)
start Guard $ guard
create/remove/test files with $ bin/leet <command> <filename>
e.g.
bin/leet create 100
# create problem/100.rb and spec/100_spec.rbbin/leet delete 100
# remove problem/100.rb and spec/100_spec.rbbin/leet test 100
# run rspec spec/100_spec.rb
(if you find the bin/leet annoying, just run sudo ln -s $PWD/bin/leet usr/local/bin
and you will be able to run leet
directly)
There are several helper modules located in lib folder to help debug your solutions.
-
lib/tree/build_tree.rb helps build tree from array.
e.g. require "../lib/tree/build_tree.rb" BuildTree.build_tree_from_array [1, 2, 3, 4, nil, nil, 7] will return: 1 <- root / \ 2 3 / \ / \ 4 7 (must fill empty node's position with nil)
-
lib/tree/print_tree.rb helps visualize tree.
e.g. require "../lib/tree/build_tree.rb" require "../lib/tree/print_tree.rb" tree = BuildTree.build_tree_from_array [1, 2, 3, 4, nil, nil, 7] PrintTree.print_tree_graph tree will return: _1 / \ _2 _3 / \ / \ _4 __ __ _7
-
lib/tree/traverse_tree.rb returns pre, in, postorder traversal of a tree
e.g. require "../lib/tree/build_tree.rb" require "../lib/tree/print_tree.rb" tree = BuildTree.build_tree_from_array [1, 2, 3, 4, nil, nil, 7] TraverseTree.preorder_traversal tree will return: [1, 2, 4, 3, 7]
Of course, if you find including individual files is a little annoying, just require "../lib/tree.rb"
1 | 2 | 3 | 4 | 5 | [6] | 7 | [8] | 9 | [10] |
[11] | [12] | [13] | [14] | [15] | [16] | [17] | [18] | [19] | [20] |
[21] | [22] | [23] | [24] | 25 | [26] | [27] | [28] | [29] | 30 |
[31] | [32] | [33] | [34] | [35] | [36] | [37] | [38] | [39] | [40] |
[41] | 42 | [43] | [44] | [45] | 46 | [47] | [48] | [49] | [50] |
51 | [52] | [53] | [54] | [55] | [56] | [57] | [58] | [59] | [60] |
[61] | [62] | [63] | [64] | [65] | [66] | [67] | [68] | [69] | [70] |
71 | [72] | [73] | [74] | [75] | [76] | 77 | 78 | [79] | [80] |
[81] | [82] | [83] | [84] | [85] | [86] | [87] | [88] | [89] | 90 |
91 | 92 | [93] | 94 | 95 | 96 | [97] | [98] | [99] | 100 |
[101] | [102] | [103] | 104 | [105] | 106 | [107] | [108] | 109 | 110 |
[111] | [112] | [113] | [114] | [115] | [116] | [117] | [118] | [119] | [120] |
[121] | 122 | [123] | [124] | [125] | [126] | [127] | [128] | [129] | 130 |
[131] | [132] | [133] | [134] | [135] | 136 | [137] | [138] | [139] | [140] |
[141] | [142] | [143] | 144 | 145 | [146] | [147] | [148] | [149] | [150] |
[151] | [152] | [153] | [154] | [155] | [156] | [157] | [158] | [159] | [160] |
[161] | [162] | [163] | [164] | [165] | 166 | [167] | 168 | [169] | [170] |
171 | [172] | [173] | [174] | [175] | [176] | [177] | [178] | [179] | [180] |
[181] | [182] | [183] | [184] | [185] | [186] | 187 | [188] | [189] | [190] |
[191] | [192] | [193] | [194] | [195] | [196] | [197] | 198 | [199] | [200] |
[201] | [202] | [203] | [204] | [205] | 206 | [207] | [208] | [209] | [210] |
[211] | [212] | [213] | 214 | [215] | [216] | [217] | [218] | [219] | [220] |
[221] | [222] | [223] | [224] | [225] | 226 | [227] | [228] | [229] | [230] |
[231] | [232] | 233 | 234 | 235 | 236 | 237 | 238 | 239 | [240] |
[241] | 242 | [243] | [244] | [245] | [246] | [247] | [248] | [249] | [250] |
[251] | [252] | [253] | [254] | [255] | [256] | [257] | 258 | [259] | 260 |
[261] | [262] | [263] | [264] | [265] | [266] | [267] | 268 | [269] | [270] |
[271] | [272] | 273 | [274] | [275] | [276] | [277] | [278] | [279] | [280] |
[281] | [282] | 283 | [284] | [285] | [286] | 287 | [288] | [289] | [290] |
[291] | 292 | [293] | [294] | [295] | [296] | [297] | [298] | [299] | [300] |
[301] | [302] | [303] | [304] | [305] | [306] | [307] | [308] | [309] | 310 |
[311] | 312 | [313] | [314] | [315] | 316 | [317] | 318 | 319 | [320] |
[321] | [322] | [323] | [324] | [325] | [326] | [327] | 328 | 329 | [330] |
331 | [332] | [333] | [334] | [335] | [336] | [337] | [338] | [339] | [340] |
[341] | [342] | [343] | [344] | [345] | [346] | [347] | [348] | [349] | [350] |
[351] | [352] | [353] | [354] | [355] | [356] | [357] | [358] | [359] | [360] |
[361] | [362] | [363] | [364] | [365] | [366] | [367] | [368] | [369] | [370] |
[371] | [372] | [373] | [374] | [375] | [376] | [377] | [378] | [379] | [380] |
[381] | [382] | [383] | [384] | [385] | [386] | [387] | [388] | 389 | [390] |
[391] | [392] | [393] | [394] | [395] | [396] | [397] | [398] | [399] | [400] |
[401] | [402] | [403] | [404] | [405] | [406] | [407] | [408] | [409] | [410] |
[411] | [412] | [413] | [414] | [415] | [416] | [417] | [418] | [419] | [420] |
[421] | [422] | [423] | [424] | [425] | [426] | [427] | [428] | [429] | [430] |
[431] | [432] | [433] | [434] | [435] | [436] | [437] | [438] | [439] | [440] |
[441] | 442 | [443] | [444] | [445] | [446] | [447] | 448 | [449] | [450] |
[451] | [452] | [453] | [454] | [455] | [456] | [457] | [458] | [459] | [460] |
461 | [462] | 463 | [464] | [465] | [466] | [467] | [468] | [469] | [470] |
[471] | [472] | [473] | [474] | [475] | [476] | [477] | [478] | [479] | [480] |
[481] | [482] | [483] | [484] | 485 | [486] | [487] | [488] | [489] | [490] |
[491] | [492] | [493] | [494] | [495] | [496] | [497] | [498] | [499] | [500] |
- "leet" command
- create: overwrite existing files?
- create: with libraries
- create: add entry in README.md
- delete: delete entry in README.md
- Libraries
Generic tree- Singly linked list
- Doubly linked list
- Gemify this