Longest Word in Dictionary through Deleting LeetCode solution in Java

1
class Solution {
2
public String findLongestWord(String s, List<String> dictionary) {
3

4
int[] fre = new int[26];
5

6
String ans = "";
7
int flag = 0;
8
int[] fff = new int[26];
9
char[] ch = s.toCharArray();
10
for (char c : ch) fre[c - 'a'] += 1;
11

12
for (String s1 : dictionary) {
13
fff = fre.clone();
14
int[] fre1 = new int[26];
15
char[] ch1 = s1.toCharArray();
16
for (char c : ch1) {
17

18
fre1[c - 'a'] += 1;
19
}
20

21
for (char c : ch1) {
22
if (fre1[c - 'a'] <= fff[c - 'a']) {
23
flag = 0;
24
fff[c - 'a'] -= 1;
25
fre1[c - 'a'] -= 1;
26
} else {
27
flag = 1;
28
break;
29
}
30
}
31
if (flag == 0) {
32
if (ans != "") {
33
if (ans.length() < s1.length()) {
34

35
ans = s1;
36
} else {
37
if (ans.length() == s1.length()) {
38
int f = 0;
39
for (int m = 0; m < ans.length(); m++) {
40
if (ans.charAt(m) > s1.charAt(m)) {
41
f = 1;
42
break;
43
}
44
}
45
if (f == 1) ans = s1;
46
}
47
}
48
} else ans = s1;
49
} else {
50
flag = 0;
51
}
52
}
53

54
return ans;
55
}
56
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0