【每日一题Day177】LC1023驼峰式匹配 | 模拟+双指针

简介: 【每日一题Day177】LC1023驼峰式匹配 | 模拟+双指针

驼峰式匹配【LC1023】

如果我们可以将小写字母插入模式串 pattern 得到待查询项 query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。)

给定待查询列表 queries,和模式串 pattern,返回由布尔值组成的答案列表 answer。只有在待查项 queries[i] 与模式串 pattern 匹配时, answer[i] 才为 true,否则为 false

有一点乏了 在想要不要继续写每日一题的题解

写题解有点费时间 简单题也不需要写题解来厘清思路 最近事情还有点多

  • 思路
  • 使用双指针,按规则进行字符匹配,模式串中的每一个字符在查询字符串中必须出现,查询字符串中多余的小写字母可以忽略
  • 实现
class Solution {
    public List<Boolean> camelMatch(String[] queries, String pattern) {
        List<Boolean> res = new ArrayList<>();
        for (String q : queries){
            int i = 0, j = 0;
            while (i < q.length()){
                char c = q.charAt(i);
                if (j < pattern.length() && c == pattern.charAt(j)){
                    i++;
                    j++;
                }else if (c >= 'a' && c <= 'z'){
                    i++;
                }else{// 大写
                    break;
                }
            }
            res.add(i == q.length() && j == pattern.length());
        }
        return res;
    }
}

image.png

目录
相关文章
|
8月前
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
60 0
|
8月前
【每日一题Day191】LC2423删除字符使频率相同 | 枚举 分类讨论
【每日一题Day191】LC2423删除字符使频率相同 | 枚举 分类讨论
56 0
|
8月前
【每日一题Day268】LC415字符串相加 | 模拟
【每日一题Day268】LC415字符串相加 | 模拟
58 0
|
8月前
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
44 0
|
8月前
【每日一题Day117】LC1234替换子串得到平衡字符串 | 双指针
【每日一题Day117】LC1234替换子串得到平衡字符串 | 双指针
55 0
|
8月前
|
C++
【每日一题Day284】LC722删除注释 | 字符串模拟
【每日一题Day284】LC722删除注释 | 字符串模拟
35 0
|
8月前
【每日一题Day129】LC1247交换字符使得字符串相同 | 贪心
【每日一题Day129】LC1247交换字符使得字符串相同 | 贪心
61 0
|
8月前
【每日一题Day238】LC1177构建回文串检测 | 前缀和 + 异或
【每日一题Day238】LC1177构建回文串检测 | 前缀和 + 异或
71 0
|
算法 C语言 C++
LeetCode每日一题 1023. 驼峰式匹配 --双指针
本题挺容易想到的,难得是如何处理特殊的情况.
81 0
LeetCode每日一题 1023. 驼峰式匹配 --双指针
|
算法 C语言 C++
Leetcode 每日一题 1234. 替换子串得到平衡字符串
有一个只含有 'Q', 'W', 'E', 'R' 四种字符,且长度为 n 的字符串
50 0
Leetcode 每日一题 1234. 替换子串得到平衡字符串