给定两个字符串 A 和 B ,每个字符串由小写字母组成,是否可以选择一些非空字符串s1和s2,其中s1是A的子字符串,s2是B的子字符串,使得s1 s2是回文字符串 . 这里'+'表示字符串之间的串联 .
For example:
Case 1:
A='abc'
B='abc'
解决方案选择s1和s2的一种可能方法是s1 =“ab”,s2 =“a”使得s1 s2,即“aba”是回文 .
Case 2:
A='a'
B='b'
解决方案:没有可能的方法来选择s1和s2,使得s1 s2是回文 .
注意:如果可能,打印'是'否则打印'否'在两个字符串之间找到回文子串的算法是什么?
2 回答
两个字符串有一个共同的字母是必要的(并且足够) .
该程序为您发布的问题提供了相当好的结果 .
我在这里基本上做的是获取s1的子串 . 子串的长度逐渐增加,如'p','po','pot','pott','potte','potter' . 并且对应于s1的每个子字符串,我们检查来自另一个字符串s2的相等长度的子字符串 . 输出的一部分如下所示:
例如,对应于s1中的'pot',我们在s2中得到'top','opp','ppe','per',其长度与'pot'相同 . 但只有'顶部'反转才能回到'底池' . 因此,当'pot'与'top'连接时,它会形成一个回文 . 类似地,可以从这两个词中获得的其他回文是'pp','poop','pottop','oo','otto','tt','ee'和'rr' . 但我的程序没有解决制作奇数字母的回文问题 .