最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Java的:最长公共子

SEO心得admin134浏览0评论
本文介绍了Java的:最长公共子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有以下code:

public class LCS1 { public static String lcs(String a, String b) { String x; String y; int alen = a.length(); int blen = b.length(); if (alen == 0 || blen == 0) { return ""; } else if (a.charAt(alen - 1) == b.charAt(blen - 1)) { return lcs(a.substring(0, alen - 1), b.substring(0, blen - 1)); } else { x = lcs(a, b.substring(0, blen - 1)); y = lcs(a.substring(0, alen - 1), b); } return (x.length() > y.length()) ? x : y; } public static void main(String[] args) { String a = "computer"; String b = "houseboat"; System.out.println(lcs(a, b)); } }

这应该返回退出,而是一个空字符串返回什么问题?

It should return "out" but an empty string returns what is problem?

推荐答案

我不知道,但我想,行

else if (a.charAt(alen-1)==b.charAt(blen-1)){ return lcs(a.substring(0,alen-1),b.substring(0,blen-1)); }

应改为

else if (a.charAt(alen-1)==b.charAt(blen-1)){ return lcs(a.substring(0,alen-1),b.substring(0,blen-1)) + a.charAt(alen-1); }

否则没有串联串的发生,只有,返回。

发布评论

评论列表(0)

  1. 暂无评论