新水果起名问题
题目内容:
两种水果杂交出一种新水果,现在给新水果取名,要求这个名字中包含以前两种水果的字母,且名字尽量短,即:以前的水果名字arr1、arr2是新水果名arr的子序列,使用动态规划的思想设计算法得到新水果名arr。
输入格式:
以空格分开两个水果的名字
输出格式:
新水果的名字
输入样例:
apple peach
输出样例:
appleach
这个沙雕问题浪费了我三个小时(NMD,WSM),事实证明写算法题不能乱想和省事(泪目)。
这里就不详细说我写这个题想偏的思路了,直接给出最直接的思路:按照DP的求最长公共子序列的算法作出它的状态表,然后直接根据状态表进行相对应的输出。其他该注意的点我基本上都有在代码里写好注释,我的代码中有些在本题中无用的代码我也标注了出来。
具体实现代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
String str1=input.next();
String str2=input.next();
cal(str1,str2);
}
public static void cal(String str1,String str2)
{
char temp1[]=str1.toCharArray();
char temp2[]=str2.toCharArray();
//为了不使用字符数组的首位,使程序可读性更好一点(可以不进行这个处理)
char s1[]=new char[temp1.lengt