forked from varunu28/LeetCode-Java-Solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCamelcase Matching.java
More file actions
34 lines (33 loc) · 951 Bytes
/
Camelcase Matching.java
File metadata and controls
34 lines (33 loc) · 951 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public List<Boolean> camelMatch(String[] queries, String pattern) {
List<Boolean> list = new ArrayList<>();
for (String query : queries) {
list.add(isMatch(query, pattern));
}
return list;
}
private boolean isMatch(String query, String pattern) {
int idxQuery = 0;
int idxPattern = 0;
int lenQuery = query.length();
int lenPattern = pattern.length();
while (idxQuery < lenQuery && idxPattern < lenPattern) {
char queryC = query.charAt(idxQuery);
char patternC = pattern.charAt(idxPattern);
if (queryC == patternC) {
idxQuery++;
idxPattern++;
}
else if (Character.isUpperCase(queryC)) {
return false;
}
else {
idxQuery++;
}
}
while (idxQuery < lenQuery && Character.isLowerCase(query.charAt(idxQuery))) {
idxQuery++;
}
return idxPattern == lenPattern && idxQuery == lenQuery;
}
}