Given a string s and a string array dictionary, return the longest string in the dictionary that can be formed by deleting some of the given string characters. If there is more than one possible result, return the longest word with the smallest lexicographical order. If there is no possible result, return the empty string.
how to find the string in the dictonary exist in the s or not? We can find a pattern that when we match a character, we can keep match until we match all the character or not. Thus the time complexiy will be
O(number of strings in dictionary * number of character in s) = 1000*1000 = 10^6 which is acceptable.
- 1 <= s.length <= 1000
- 1 <= dictionary.length <= 1000
- 1 <= dictionary[i].length <= 1000
- s and dictionary[i] consist of lowercase English letters.
let's do the implementation.