Count Words Obtained After Adding a Letter LeetCode solution in Java

1
class Solution {
2
public int wordCount(String[] startWords, String[] targetWords) {
3
int n = startWords.length;
4
int count = 0;
5
Set<String> set = new HashSet<>();
6

7
// 1. store lexicographically sorted letters of startword in set
8
for (String start : startWords) {
9
char[] sAr = start.toCharArray();
10
Arrays.sort(sAr);
11
set.add(new String(sAr));
12
}
13
int m = targetWords.length;
14
boolean ans = false;
15
for (int i = 0; i < m; i++) {
16
// 2. sort lexicographically letters of targetword and store in new string s
17
char[] tAr = targetWords[i].toCharArray();
18
Arrays.sort(tAr);
19
int k = tAr.length;
20
String s = String.valueOf(tAr);
21

22
ans = false;
23
for (int j = 0; j < k; j++) {
24
// 3. make a new string by omitting one letter from word and check if it is present in set
25
// than increase count value
26
String str = s.substring(0, j) + s.substring(j + 1);
27
if (set.contains(str)) {
28
count++;
29
break;
30
}
31
}
32
}
33
return count;
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0