(一)问题描述:
给定一个字符串以及多个子串,对于在字符串中出现的子串可以多次移除,求多次移除后能够得到的最短字符串长度。
输入: 第一行为一个字符串,第二行为多个子串,字符串长度大于0
输出: 多次移除后能够得到的最短字符串长度
示例1:
输入:
第一行:"ccdaabcdbb"
第二行:["ab","cd"]
输出:
第一行:2
解释:
ccdaabcdbb -> ccdacdbb -> cabb -> cb (length = 2)
示例 2:
输入:
第一行:"abcabd"
第二行:["ab","abcd"]
输出:
第一行:0
解释:
abcabd -> abcd -> "" (length = 0)
(二)解题思路
利用宽度优先搜索算法(BFS),关键思想就是把所有可能替换的结果都放到queue中,然后再继续处理。 比如 parent = “abcabd”,