Task:
Write a function which returns true if a given substring is found within a given string. If the substring isn't found, then return false.
My implementation:
#!/usr/bin/env ruby
def custom_include?(string, substring)
len = substring.size
last_feasible = string.size - len
for i in 0..last_feasible
current_slice = string[i...i + len]
if current_slice == substring
return true
end
end
false
end
puts custom_include? "The Ruby Programming Language is amazing!", "Language" # true
puts custom_include? "The Ruby Programming Language is amazing!", "language" # false
puts custom_include? "The Ruby Programming Language is amazing!", "amazing!" # true
puts custom_include? "The Ruby Programming Language is amazing!", "The" # true
puts custom_include? "The Ruby Programming Language is amazing!", "Test" # false
Is there a way to avoid the for
-loop? Should I try to "save" variables?
Using variables make it easier for me to development a solution for such an exercise. Moreover I think it makes the script for readable and understandable. What's your opinion about that approach?
def custom_include?(string, substring) string.include?(substring) end
. Nothing in the task prevents this and it sounds like they just want it as a function instead of a method. \$\endgroup\$ – superb rain Aug 9 '20 at 6:22