Longest Word in Dictionary through Deleting LeetCode solution in Java
1class Solution {2public String findLongestWord(String s, List<String> dictionary) {34int[] fre = new int[26];56String ans = "";7int flag = 0;8int[] fff = new int[26];9char[] ch = s.toCharArray();10for (char c : ch) fre[c - 'a'] += 1;1112for (String s1 : dictionary) {13fff = fre.clone();14int[] fre1 = new int[26];15char[] ch1 = s1.toCharArray();16for (char c : ch1) {1718fre1[c - 'a'] += 1;19}2021for (char c : ch1) {22if (fre1[c - 'a'] <= fff[c - 'a']) {23flag = 0;24fff[c - 'a'] -= 1;25fre1[c - 'a'] -= 1;26} else {27flag = 1;28break;29}30}31if (flag == 0) {32if (ans != "") {33if (ans.length() < s1.length()) {3435ans = s1;36} else {37if (ans.length() == s1.length()) {38int f = 0;39for (int m = 0; m < ans.length(); m++) {40if (ans.charAt(m) > s1.charAt(m)) {41f = 1;42break;43}44}45if (f == 1) ans = s1;46}47}48} else ans = s1;49} else {50flag = 0;51}52}5354return ans;55}56}