An open API service indexing awesome lists of open source software.

https://github.com/iacobson/odin7-ruby-building_blocks


https://github.com/iacobson/odin7-ruby-building_blocks

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# Odin7-Ruby-Building_Blocks
#### http://www.theodinproject.com/ruby-programming/building-blocks

##Project 1: Caesar Cipher

_From_Wikipedia_:

In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a left shift of 3, D would be replaced by A, E would become B, and so on. The method is named after Julius Caesar, who used it in his private correspondence.

**TASK:** Implement a caesar cipher that takes in a string and the shift factor and then outputs the modified string:
**caesar_cipher(input_string, shift_factor)**

##Project 2: Stock Picker
Implement a method #stock_picker that takes in an array of stock prices, one for each hypothetical day. It should return a pair of days representing the best day to buy and the best day to sell. Days start at 0.

```ruby
stock_picker([17,3,6,9,15,8,6,1,10])
=> [1,4] # for a profit of $15 - $3 == $12
```

##Project 3: Substrings
Implement a method #substrings that takes a word as the first argument and then an array of valid substrings (your dictionary) as the second argument. It should return a hash listing each substring (case insensitive) that was found in the original string and how many times it was found.
```ruby
dictionary = ["below","down","go","going","horn","how","howdy","it","i","low","own","part","partner","sit"]
=> ["below","down","go","going","horn","how","howdy","it","i","low","own","part","partner","sit"]

substrings("below", dictionary)
=> {"below"=>1, "low"=>1}
```
Next, make sure your method can handle multiple words:
```ruby
substrings("Howdy partner, sit down! How's it going?", dictionary)
=> {"down"=>1, "how"=>2, "howdy"=>1,"go"=>1, "going"=>1, "it"=>2, "i"=> 3, "own"=>1,"part"=>1,"partner"=>1,"sit"=>1}
```