当前位置: 首页 > article >正文

LeetCode每日一题 1023. 驼峰式匹配 --双指针

 

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

目录

题目:1023. 驼峰式匹配

题解:

代码实现:

完结撒花:

 

题目:1023. 驼峰式匹配

题解:

本题挺容易想到的,难得是如何处理特殊的情况.

题目的大意是:

        模板串以每一个大写字母为分割,组成一个个子串.这些子串需要在待查询项中出现一次.且待查询串中不能再出现除此之外以大写字母开头的"子串".  

例如以下这种情况:

 拆分成:F+B

只要待查询项中含有F+B的组成格式且不含有其他大写字母即可作为true.其余需要填入false

再例如以下这种情况:

   FoBa可以拆分为:Fo+Ba 只要一个个去对比待查询项中是否含有这些子串内容即可.

总结上面的情况:我们不难发现,这是用一个双指针的方法去对比每一个待查询项.

我们先模拟一下这个过程:

一个指针指向queries,一个指针指向pattern.

若有相同的则同时向前位移一格

出现不同的需要判断一下,是否为大写字母.若有queries中的大写字母与pattern中的字母不同.则直接填入false即可.

若对比完发现,指向pattern的指针仍然没有走到底,说明pattern在queries中并未全部出现,则同样填入false.

 

梳理完了整个流程,接下来我们来看看代码实现.

首先创建一个长度为queries.size()的vector数组,其中填满true

之后依次遍历每一个queries的,将其与pattern进行比较.复现上面的过程

代码实现:

#include<vector>
#include<string>
#include<iostream>
using namespace std;
class Solution {
public:
    vector<bool> camelMatch(vector<string>& queries, string pattern) {
        vector<bool>ans(queries.size(),true);
        int npat=pattern.size();
        for(int i=0;i<queries.size();i++)
        {
            
            int p=0;
            for(auto c:queries[i])
            {
                if(pattern[p]==c)
                {
                    p++;
                }
                else if(isupper(c))
                {
                    ans[i]=false;
                }
            }
            if(p<pattern.size())
                ans[i]=false;
            
        }


        return ans;
    }
};

 

完结撒花:

🌈本篇博客的内容【LeetCode每日一题 1023. 驼峰式匹配 --双指针】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!


http://www.kler.cn/news/11942.html

相关文章:

  • 零零信安-DD数据泄露报警日报 【第144期】
  • MySQL创建数据表(CREATE TABLE语句)
  • [STM32F103C8T6]DMA
  • 4.17日报
  • 代码随想录算法训练营第三十九天-动态规划2|62.不同路径 , 63. 不同路径 II
  • 原生JS + HTML + CSS 实现快递物流信息 API 的数据链式展示
  • RabbitMQ之介绍
  • 2023TYUT移动应用软件开发程序修改题
  • C/C++程序设计——static关键字
  • NumPy 秘籍中文第二版:四、将 NumPy 与世界的其他地方连接
  • 「数字信号处理」MATLAB设计 双音多频拨号系统
  • ESP32设备驱动-MAX30102脉搏血氧饱和度和心率监测传感器驱动
  • 【GB28181】PJSIP库(七)C++接口PJSUA2类详解:Call、Buddy
  • 发令枪音效芯片,语音提示ic
  • WMS智能仓储
  • winForm目录文件介绍
  • 测试5年,从纯手工测试到测试开发,我是怎么拿到腾讯25koffer的?
  • 红黑树和平衡二叉树的优缺点及应用场景
  • ChatGPT或要推出APP,OpenAI官宣为ChatGPT招募移动端开发工程师
  • [架构之路-162]-《软考-系统分析师》-3-作系统基本原理-进程管理
  • 1.分布式电源接入对配电网影响分析
  • 追梦之旅【数据结构篇】——详解小白如何使用C语言实现堆数据结构
  • [架构之路-160]-《软考-系统分析师》-10-系统分析-7-数据与数据流程分析、需求规格说明书
  • GPT-4工具是软件工程师工作效率的倍增器
  • 前端解析Excel中的数据进行操作
  • 线性代数——矩阵
  • CTR-GCN 论文解读
  • 游戏运营专员的职责有哪些?提高游戏收入的关键是什么?
  • C语言实现惯导更新算法(机械编排)
  • DPDK入门(环境搭建以及小demo)