Skip to content

Instantly share code, notes, and snippets.

@vishaldeepak
Created September 16, 2021 08:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vishaldeepak/5ef10c602a271d7bffdfc569155c926a to your computer and use it in GitHub Desktop.
Save vishaldeepak/5ef10c602a271d7bffdfc569155c926a to your computer and use it in GitHub Desktop.
Inner hour
def longest_substring(string)
iterator = 0
largest_value=1
while(iterator < string.length)
current_string = string[iterator]
sub_iterator = iterator + 1
current_largest = 1
while(sub_iterator < string.length)
current_string += string[sub_iterator]
if(current_string.split("").uniq!.nil?)
current_largest += 1
if(current_largest > largest_value)
largest_value = current_largest
end
else
break
end
sub_iterator += 1
end
iterator += 1
end
largest_value
end
puts longest_substring("abbcdefggg")
def roman_to_integer(roman_numeral)
raise "Empty String" if roman_numeral.nil? || roman_numeral.length == 0
iterator = 0
integer_value = 0
last_element = nil
while(iterator < roman_numeral.length)
current_element = roman_numeral[iterator]
rule_value = rules(last_element.to_s + current_element)
unless rule_value.nil?
integer_value += rule_value
last_element = nil
current_element = nil
else
unless last_element.nil?
integer_value += get_value(last_element)
end
last_element = current_element
end
iterator+=1;
end
if !current_element.nil?
integer_value += get_value(current_element)
end
return integer_value
end
def rules sub_roman_string
return nil if sub_roman_string.length < 2
case sub_roman_string
when 'IV'
4
when 'IX'
9
when 'XL'
40
when 'XC'
90
when 'CD'
400
when 'CM'
900
else
nil
end
end
def get_value roman_numeral
case roman_numeral
when 'I'
1
when 'V'
5
when 'X'
10
when 'L'
50
when 'D'
100
when 'D'
500
when 'M'
1000
end
end
puts roman_to_integer('MIX')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment