Skip to content

Commit e17a468

Browse files
author
openset
committed
Add: Camelcase Matching
1 parent f3b5f7f commit e17a468

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed
Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package camelcase_matching
22

3-
import "regexp"
4-
53
func camelMatch(queries []string, pattern string) []bool {
6-
ans, ptn := make([]bool, len(queries)), []rune("[a-z]*")
7-
for _, r := range pattern {
8-
ptn = append(ptn, r)
9-
ptn = append(ptn, []rune("[a-z]*")...)
10-
}
11-
reg := regexp.MustCompile(string(ptn))
4+
ans := make([]bool, len(queries))
125
for i, q := range queries {
13-
ans[i] = reg.FindString(q) == q
6+
ptn := []rune(pattern)
7+
for _, r := range q {
8+
if len(ptn) > 0 && ptn[0] == r {
9+
ptn = ptn[1:]
10+
} else if r >= 'A' && r <= 'Z' {
11+
ptn = []rune{1}
12+
break
13+
}
14+
}
15+
ans[i] = len(ptn) == 0
1416
}
1517
return ans
1618
}

0 commit comments

Comments
 (0)