This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def mode(array) | |
el_count = {} | |
array.each do |n| | |
if el_count.has_key?(n) | |
el_count[n] = el_count[n] + 1 | |
else | |
el_count[n] = 1 | |
end | |
end | |
el_count.select { |k, v| v == el_count.values.max }.keys |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ans = {} | |
for i in 1..1_000_000 | |
moves = 0 | |
morph = i | |
until morph == 1 do | |
if ans[morph] != nil | |
moves += ans[morph] | |
break | |
else |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RPNCalculator | |
def evaluate(string) | |
return string.to_i if string.split(' ').count == 1 | |
sarray = string.split(' ') | |
#Check for Valid setup | |
syms = 0 | |
nums = 0 | |
valchars = true | |
sarray.each do |c| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def d(num) | |
arr = (1..(num/2)).to_a.keep_if { |i| num % i == 0} | |
arr = [1] if num == 1 | |
arr.inject(:+) | |
end | |
st = Time.new | |
amic = [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def sieve(num) | |
first_arr = Array.new(num) { |i| i } | |
2.times { first_arr.delete_at(0) } | |
primes = [] | |
while true | |
break if first_arr[0]**2 >= num | |
first_arr.delete_if { |n| n % first_arr[0] == 0 && first_arr[0] != n } | |
primes << first_arr.slice!(0) | |
end | |
primes += first_arr |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
st = Time.new | |
top = 999*999 | |
found = false | |
pal = true | |
until found == true do | |
#check if palindrome | |
tops = top.to_s | |
if tops != tops.reverse | |
pal = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def flatten(array) | |
a = [] #Must store elements somewhere | |
array.each do |x| #Go Through each element | |
if x.class != Array #If the Element is Not an Array | |
a << x #Store Element in Array 'a' | |
else | |
a += flatten(x) #Add flattened array to previous array | |
end | |
end | |
return a #When all elements are non-arrays, return new array filled with non-array elements |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def paths(row, col) | |
return 1 if row == 3 && col == 3 | |
return 0 if row > 3 || col > 3 | |
return paths(row + 1, col) + paths(row, col + 1) | |
end | |
def new_path(tot_row, tot_col) | |
curr_row = 0 | |
curr_col = 0 | |
known = {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Don't forget to check on intialization for a card length | |
# of exactly 16 digits | |
class CreditCard | |
def initialize(cc) | |
@cc_int = [] | |
raise ArgumentError.new("CC Number is not 16 Digits") if cc.to_s.length != 16 | |
cc.to_s.each_char { |ch| @cc_int << ch.to_i if ch != ' ' } | |
end | |
def check_card |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GRID = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 | |
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 | |
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 | |
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 | |
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 | |
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 | |
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 | |
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 | |
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 | |
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 |
NewerOlder