题目描述
一个字符串的子串是在这个串基础上去掉0个或者若干个字符所形成的,例如abc, aa和abbc都是字符串aabbcc的子串,而aba不是。 现给你三个字符串,请问他们三个共同含有多少种子串(不算空串)?
注意: 有些相同的公共子串尽管出现在不同的位置,但仍算1种,详见样例。
输入格式
每组测试数据只有3行,每行都是一个只包含有小写字母的字符串。
输出格式
输出3个字符串共有的公共子串种类数。
输入输出样例
输入 #1复制
apartment
apache
approach
输出 #1复制
6
说明/提示
3个字符串共有的公共子串有: “a”, “p”, “ap”, “pa”, “aa”, “apa”。 其中子串 “a” 有多个,但由于统计的是公共子串种类,所以 “a” 只算1种子串。
100%的数据中,字符串的长度不超过100。字符串中只含有小写字母。
这个题用dp暴力枚举就行了,每次固定住前两个字符串的前i和j个字符,找第三个串中出现的共有字串就行了 ,每找到一个每次加的增量就加一(因为加上一个字符后对应的一个串有多个字串)
完整代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include &l