将目标字符串数组映射到一个hash表中,key为字符串,value为出现的次数。这里假设目标字符串数组长度为m,每个字符串的长度为n。
源字符串,从头开始遍历,检查n个字符组成的子字符串串,映射到新的hash表。如果该子字符串未在目标hash表中出现,则break;如果在目标hash表和新hash表中都出现了,且在新hash表中出现的次数已经等于目标hash表中出现的次数,则说明该字符串多了,break;如果在目标hash表中出现了,未在新hash表中出现或出现次数小于目标hash表,则将新hash表中该字符串的value+1。遍历了m次后,如果未出现break,则说明该区域的字符串是所有目标字符串的组合。
1 | class Solution { |