I go over some of the many coding related issues. I was wondering how to implement the order_vowel words method. I am working on an algorithmic issue to implement this method for understanding the algorithm. I have the following:
This method takes a string of lowercase words and returns a string containing only words containing all their vowels (excluding "y") in alphabetical order. Vowels can be repeated ( "afoot" is an ordered vowel)
def ordered_vowel_words(str) words = str.split(" ") ordered_vowel_words = words.select do |word| ordered_vowel_word?(word) end ordered_vowel_words.join(" ") end def ordered_vowel_word?(word) vowels = ["a", "e", "i", "o", "u"] letters_arr = word.split("") vowels_arr = letters_arr.select { |l| vowels.include?(l) } (0...(vowels_arr.length - 1)).all? do |i| vowels_arr[i] <= vowels_arr[i + 1] end end
I added the following test cases:
puts("\nTests for #ordered_vowel_words") puts("===============================================") puts "ordered_vowel_words(\"amends\") == \"amends\": " + (ordered_vowel_words("amends") == "amends").to_s puts "ordered_vowel_words(\"complicated\") == \"\": " + (ordered_vowel_words("complicated") == "").to_s puts "ordered_vowel_words(\"afoot\") == \"afoot\": " + (ordered_vowel_words("afoot") == "afoot").to_s puts "ordered_vowel_words(\"ham\") == \"ham\": " + (ordered_vowel_words("ham") == "ham").to_s puts "ordered_vowel_words(\"crypt\") == \"crypt\": " + (ordered_vowel_words("crypt") == "crypt").to_s puts "ordered_vowel_words(\"o\") == \"o\": " + (ordered_vowel_words("o") == "o").to_s puts "ordered_vowel_words(\"tamely\") == \"tamely\": " + (ordered_vowel_words("tamely") == "tamely").to_s
What is runtime analysis for this?
Why is it true that we can get O (m) O (m) runtime for mm function calls.
I appreciate your explanation for this. thanks.
source share