-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path1023.java
More file actions
59 lines (59 loc) · 2.3 KB
/
Copy path1023.java
File metadata and controls
59 lines (59 loc) · 2.3 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// 1023. Camelcase Matching
//
// Given an array of strings queries and a string pattern, return a boolean array answer where answer[i] is true if queries[i] matches pattern, and false otherwise.
//
// A query word queries[i] matches pattern if you can insert lowercase English letters pattern so that it equals the query. You may insert each character at any position and you may not insert any characters.
//
//
//
// Example 1:
//
// Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FB"
// Output: [true,false,true,true,false]
// Explanation: "FooBar" can be generated like this "F" + "oo" + "B" + "ar".
// "FootBall" can be generated like this "F" + "oot" + "B" + "all".
// "FrameBuffer" can be generated like this "F" + "rame" + "B" + "uffer".
// Example 2:
//
// Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBa"
// Output: [true,false,true,false,false]
// Explanation: "FooBar" can be generated like this "Fo" + "o" + "Ba" + "r".
// "FootBall" can be generated like this "Fo" + "ot" + "Ba" + "ll".
// Example 3:
//
// Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBaT"
// Output: [false,true,false,false,false]
// Explanation: "FooBarTest" can be generated like this "Fo" + "o" + "Ba" + "r" + "T" + "est".
//
//
// Constraints:
//
// 1 <= pattern.length, queries.length <= 100
// 1 <= queries[i].length <= 100
// queries[i] and pattern consist of English letters.
//
// Runtime 0 ms Beats 100%
// Memory 40.9 MB Beats 32.8%
class Solution {
public List<Boolean> camelMatch(String[] queries, String pattern) {
List<Boolean> list = new ArrayList<>();
for (String query: queries) {
int index = 0;
boolean result = true;
for (int i = 0; i < query.length(); i++) {
char c = query.charAt(i);
if (index < pattern.length() && c == pattern.charAt(index)) {
index++;
} else if (c - 'a' >= 0 && c - 'a' < 26) {
continue;
} else {
result = false;
break;
}
}
if (index < pattern.length()) result = false;
list.add(result);
}
return list;
}
}