资讯专栏INFORMATION COLUMN

java实现最长子序列

frank_fun / 2837人阅读

要求

Input:
s = "abpcplea", d = ["ale","apple","monkey","plea"]

Output:
"apple"

实现

public class Demo7 {

    @Test
    public void solution1() {

        String s = "abpcplea";

        List list = new ArrayList<>();
        list.add("ale");
        list.add("apple");
        list.add("monkey");
        list.add("plea");
        String longestWord = findLongestWord(s, list);
        System.out.println(longestWord);
    }

    private String findLongestWord(String s, List d) {
        List max = new ArrayList();
        char[] chars = s.toCharArray();
        for (String s1 : d) {
            List list = new ArrayList<>();
            char[] chars1 = s1.toCharArray();
            for (int i1 = 0; i1 < chars1.length; i1++) {
                for (int i = i1; i < chars.length; i++) {
                    if (chars1[i1] == chars[i]) {
                        list.add(chars1[i1]);
                        break;
                    }
                }
            }

            if (max.size() < list.size()) {
                max = list;
            }
        }

        StringBuilder stringBuilder = new StringBuilder();
        max.forEach(s3 -> {
            stringBuilder.append(s3);
        });

        return stringBuilder.toString();
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77758.html

相关文章

  • 单调减序列java实现

    摘要:给定整数序列的长度和整数序列中依次的值,请你求出这个整数序列中最长的单调减小的子序列的长度以及不同但长度都是最长得单调减小的子序列的数量。输入第行为一个整数,表示输入的整数序列的长度。对于问题,声明以第个元素为结尾的子序列的最长的长度。 题目:从一个由N个整数排列组成的整数序列中,自左向右不连续的选出一组整数,可以组成一个单调减小的子序列(如从{68 69 54 64 68 64 70...

    Keagan 评论0 收藏0
  • 【Code皮皮虾】求最长递增序列的个数 不是长度哦(手动滑稽)!!!

    摘要:文章目录毛遂自荐题目题外话正经点,解题思路代码实现最后皮皮虾一个沙雕而又有趣的憨憨少年,和大多数小伙伴们一样喜欢听歌游戏,当然除此之外还有写作的兴趣,,日子还很长,让我们一起加油努力叭话不多说,直达底部有粉丝专享福利毛 ...

    chunquedong 评论0 收藏0
  • 动态规划法(十)最长公共序列(LCS)问题

    摘要:最长公共子序列问题指的是求解两个序列和的长度最长的公共子序列。当然,可以看出,问题容易出现重叠子问题,这时候,就需要用动态规划法来解决。 问题介绍   给定一个序列$X=$,另一个序列$Z=$满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列${i_1,i_2,...,i_k}$,对所有的$j=1,2,...,k$满足$x_{i_j}=z_j.$  给定两个序列$X$和$Y$...

    Ashin 评论0 收藏0
  • 动态规划法(十)最长公共序列(LCS)问题

    摘要:最长公共子序列问题指的是求解两个序列和的长度最长的公共子序列。当然,可以看出,问题容易出现重叠子问题,这时候,就需要用动态规划法来解决。 问题介绍   给定一个序列$X=$,另一个序列$Z=$满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列${i_1,i_2,...,i_k}$,对所有的$j=1,2,...,k$满足$x_{i_j}=z_j.$  给定两个序列$X$和$Y$...

    IamDLY 评论0 收藏0
  • [算法总结] 搞定 BAT 面试——几道常见的符串算法题

    摘要:第一种方法常规方法。如果不存在公共前缀,返回空字符串。注意假设字符串的长度不会超过。说明本题中,我们将空字符串定义为有效的回文串。示例输入输出一个可能的最长回文子序列为。数值为或者字符串不是一个合法的数值则返回。 说明 本文作者:wwwxmu 原文地址:https://www.weiweiblog.cn/13s... 作者的博客站点:https://www.weiweiblog.c...

    chanjarster 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<