This is called top-3 accuracy. See https://stats.stackexchange.com/q/95391/2921, https://stackoverflow.com/q/37668902/781723, https://stats.stackexchange.com/q/156471/2921. Sure, you can use it. Whether top-1 accuracy or top-3 accuracy is better correlated with user satisfaction will depend on your particular application and on your users.
One possible approach to solve this problem is as follows:-
(1) Create a trie of the dictionary for fast matching.
(2) Create a recursive function that does the following:-
(a) Finds all possible prefixes of the current string that are present in the dictionary.
(b) Calls itself recursively with those prefixes removed