#15. 背单词
背单词
Description
李华复读多年,每次高考英语都不及格,他说英语不及格就不上大学。李华非常想上大学,于是他用了一个背单词的软件。这个软件会先给李华一个长度为L1单词S1,然后再给一个长度为L2字符串S2,李华需要在S2中找到一些子串来组成单词S1。李华很懒,他想知道能否只用两个以内(尽可能少)的子串组成单词S1。现在李华找你给他写一个程序来解决这个问题,如果能组成单词S1,请输出”YES”和需要几个子串(中间用空格分开),不能请输出”NO”。
Input Format
有多组测试样例:第一行先输入测试样例数T(1 < T < 20);
对于每组测试样例,第一行输入一个单词S1(1 < L1 <30),第二行输入一个字符串S2($1< L1 \le L2 <2000 $)。
Output Format
对于每组测试样例,用一行输出,如果能组成单词s,请输出”YES”和最少需要的子串数(中间用空格分开),否则输出”NO”。
2
shuffle
sufsuahnhuffle
shuffle
sususufuhsleksuf
YES 2
NO
Hint
字符串的定义:字符串或串(String)是由数字、字母、下划线组成的一串字符。它是编程语言中表示文本的数据类型。在程序设计中,字符串为符号或数值的一个连续序列。
子串的定义:子串是一个字符串中,任意连续的字符构成的子字符串称为子串。
每组样例中s2中已经使用的子串不可重复使用且不考虑两子串拼接的先后顺序
Source
1816 Online Judge 10.100.0.232