要求

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

Output:
"apple"

实现

public class Demo7 {

    @Test
    public void solution1() {

        String s = "abpcplea";

        List<String> 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<String> d) {
        List max = new ArrayList();
        char[] chars = s.toCharArray();
        for (String s1 : d) {
            List<Character> 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();
    }
}

ByteBlogs
6 声望1 粉丝