<p>You are given an array of strings <code>words</code> and a string <code>chars</code>.</p> <p>A string is <strong>good</strong> if it can be formed by characters from chars (each character can only be used once).</p> <p>Return <em>the sum of lengths of all good strings in words</em>.</p> <p> </p> <p><strong class="example">Example 1:</strong></p> <pre> <strong>Input:</strong> words = ["cat","bt","hat","tree"], chars = "atach" <strong>Output:</strong> 6 <strong>Explanation:</strong> The strings that can be formed are "cat" and "hat" so the answer is 3 + 3 = 6. </pre> <p><strong class="example">Example 2:</strong></p> <pre> <strong>Input:</strong> words = ["hello","world","leetcode"], chars = "welldonehoneyr" <strong>Output:</strong> 10 <strong>Explanation:</strong> The strings that can be formed are "hello" and "world" so the answer is 5 + 5 = 10. </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= words.length <= 1000</code></li> <li><code>1 <= words[i].length, chars.length <= 100</code></li> <li><code>words[i]</code> and <code>chars</code> consist of lowercase English letters.</li> </ul>