要求

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();    }}