Module: Algorithmable::Cups::NestedListsProblem
- Defined in:
- lib/algorithmable/cups/nested_lists_problem.rb
Instance Method Summary collapse
-
#make_list(collection, level = 0, buffer = new_nested_list) ⇒ Object
/** * Given a nested list of integers, returns the sum of all integers in the list weighted by their depth * For example, given the list {1,1,2,1,1} the function should return 10 (four 1’s at depth 2, one 2 at depth 1) * Given the list 1,{4,{6}} the function should return 27 (one 1 at depth 1, one 4 at depth 2, and one 6 at depth 3) */.
- #new_nested_list(collection = []) ⇒ Object
- #solve_puzzle(nested_list) ⇒ Object
Instance Method Details
#make_list(collection, level = 0, buffer = new_nested_list) ⇒ Object
/**
-
Given a nested list of integers, returns the sum of all integers in the list weighted by their depth
-
For example, given the list {1,1,2,1,1} the function should return 10 (four 1’s at depth 2, one 2 at depth 1)
-
Given the list 1,{4,{6}} the function should return 27 (one 1 at depth 1, one 4 at depth 2, and one 6 at depth 3)
*/
public int depthSum (List<NestedInteger> input)
// ur implementation here
**
-
This is the interface that represents nested lists.
-
You should not implement it, or speculate about its implementation.
*/ public interface NestedInteger {
/** @return true if this NestedInteger holds a single integer, rather than a nested list */
boolean isInteger();
/** @return the single integer that this NestedInteger holds, if it holds a single integer
* Return null if this NestedInteger holds a nested list
*/
Integer getInteger();
/** @return the nested list that this NestedInteger holds, if it holds a nested list
* Return null if this NestedInteger holds a single integer
*/
List<NestedInteger> getList();
}
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/algorithmable/cups/nested_lists_problem.rb', line 35 def make_list(collection, level = 0, buffer = new_nested_list) collection.each do |entry| if entry.is_a? Array buffer << make_list(entry, level + 1) else buffer << entry end end buffer end |
#new_nested_list(collection = []) ⇒ Object
46 47 48 |
# File 'lib/algorithmable/cups/nested_lists_problem.rb', line 46 def new_nested_list(collection = []) NestedListImp.new collection end |
#solve_puzzle(nested_list) ⇒ Object
50 51 52 |
# File 'lib/algorithmable/cups/nested_lists_problem.rb', line 50 def solve_puzzle(nested_list) PuzzleSolver.find_sum_of_nodes_in nested_list end |