题目:
![1023](https://img-blog.csdnimg.cn/img_convert/e0d1602cec5e2cfeafde7c921ae10aed.png)
思路
- 题目可以解释为:遍历queries中的每个query,根据每个字符是否是大小写、是否与pattern对比相同进行筛选
- 以第一个为例子:
- 遍历FooBar[i],如果与pattern[j++]相等,继续
- 如果不相等且不是小写字母,那么为false,直接break
- 如果FooBar遍历完后,patter中还有未比对字符,也是false,直接break
- 顺利执行完遍历,并且pattern中字符没有对比剩余,那么便返回true
参考代码
public static List<Boolean> camelMatch(String[] queries, String pattern) {
int flag = 0;
List<Boolean> res = new ArrayList<Boolean>();
for(String query : queries){
int j = 0;
for(int i = 0; i < query.length(); i++){
if(j < pattern.length()){
if(query.charAt(i) == pattern.charAt(j)){
j++;
}else{
if(!(query.charAt(i) >= 'a' && query.charAt(i) <= 'z')){
flag = 1;
res.add(false);
break;
}
}
}else{
if(query.charAt(i) >= 'A' && query.charAt(i) <= 'Z'){
res.add(false);
flag = 1;
break;
}
}
}
if(flag == 0){
if(j >= pattern.length()){
res.add(true);
}else{
res.add(false);
}
}
flag = 0;
}
return res;
}