performance - Runtime of string concatenation checking algorithm -
i wrote algorithm check whether or not string concatenation of number of strings in array (while being able use string multiple times). i'm having trouble figuring out runtime of algorithm is.
i check string in question against every word in array , when find word substring of original string starting @ index 0, check remaining substring against every word in array well. i'm thinking o(n^n), unless i'm missing something.
def check_concat(str,substr,words) if substr == "" return false end words.each |word| if word == substr && str != substr return true end if substr.index(word) == 0 if check_concat(str,substr[word.length..-1],words) return true end end end return false end
let assume main string contains m words , there n words in array searched. in worst case need check each word in main string each word in array, mn time. time complexity of function o(mn).
for example main string "hello hello hello hello hello". array checked contains following words 'hai', 'fine', 'hello'. function require total of 15 comparisons.
Comments
Post a Comment