首页 > 编程语言 >【leetcode面试经典150题】26.判断子序列(C++)

【leetcode面试经典150题】26.判断子序列(C++)

时间:2024-04-10 10:29:22浏览次数:12  
标签:150 26 string 字符 题解 C++ 面试 序列 字符串

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。

【示例一】

输入:s = "abc", t = "ahbgdc"
输出:true

【示例二】

输入:s = "axc", t = "ahbgdc"
输出:false

【提示及数据范围】

  • 0 <= s.length <= 100
  • 0 <= t.length <= 10的4次方
  • 两个字符串都只由小写字符组成。

【代码】

// 方法一:双指针

class Solution {
public:
    bool isSubsequence(string s, string t) {
        int n = s.length(), m = t.length();
        int i = 0, j = 0;
        while (i < n && j < m) {
            if (s[i] == t[j]) {
                i++;
            }
            j++;
        }
        return i == n;
    }
};


// 方法二:队列

class Solution {
public:
    bool isSubsequence(string s, string t) {
        queue<char> q;
        for(auto& c : s){
            q.push(c);
        }
        for(auto& c : t){
            if(c == q.front()) q.pop();
        }
        return q.empty();
    }
};

标签:150,26,string,字符,题解,C++,面试,序列,字符串
From: https://blog.csdn.net/m0_74172965/article/details/137558109

相关文章

  • 力扣经典150题第十三题:除自身以外数组的乘积
    目录力扣经典150题第十三题:除自身以外数组的乘积1.简介2.问题分析3.解题思路方法一:左右乘积列表方法二:优化空间复杂度4.代码实现5.时间复杂度分析6.应用和扩展7.总结8.参考资料力扣经典150题第十三题:除自身以外数组的乘积1.简介本文介绍如何设计一个算......
  • 第十一届蓝桥杯C/C++组C组决赛之思维风暴 快速解题
    十五届蓝桥杯即将开赛,十一届的蓝桥杯国赛的一些巧妙解法。美丽的2 题目描述本题为填空题,只需要算出结果后,在代码中使用输出语包将所填结果输出即可。小蓝特别喜欢2,今年是公元2020年,他特别高兴。他很好奇,在公元1年到公元2020年(包含)中,有多少个年份的数位中包含数字2?......
  • c++中的缺省参数
    c++相对于C语言的一个新的语法叫做缺省参数。什么叫做缺省参数呢???我们先来看我们已知的Add函数缺省参数就是给x和y赋一个默认的值  我们可以根据自己的需要将x或者y给上缺省值看下面一个例子: 如果我们将函数中所有的参数都给上了缺省值,我们也叫这些参数为全缺省参数......
  • C++11:超进化--lambda表达式
    目录一、lambda表达式的引入二、lambda表达式的语法2.1lambda表达式各部分说明2.2lambda函数的初步使用2.3详谈捕捉列表2.3.1[var][&var] 2.3.2[=]传值捕捉当前域所有对象 2.3.3[&]传引用捕捉所有对象2.3.4[&,val]混合捕捉​编辑 三、lambda底层、lambda与函数对......
  • 问题解决 usr/include/c++/11/bits/list.tcc:344:24: error: no match for ‘operator
    1.问题解决usr/include/c++/11/bits/list.tcc:344:24:error:nomatchfor‘operator==’错误解释:这个编译错误表明编译器在尝试使用==操作符比较两个对象时找不到匹配的操作符函数。在C++中,如果你尝试比较两个自定义类型的对象,且没有为这些对象定义==操作符,编译器将无法进......
  • C++ 标准模板库 STL(1)set 与 multiset
    一、简介    set与multiset容器能够快速查找键,键是存储在一维容器中的值,二者的区别在于前者不能够存储重复的键值,后者能够存储重复键值。    set与multiset内部结构类似于二叉树,并且被插入到set与multiset容器中的元素会默认进行排序,从而提高查找速度。这意......
  • 突破编程_C++_网络编程(Windows 套接字(setsockopt 选项设置))
    1setsockopt函数介绍Windows套接字(Winsock)的setsockopt函数是用于设置套接字选项的重要工具。通过这个函数,开发者可以调整套接字的行为,以满足特定的网络应用需求。(1)函数原型intsetsockopt(SOCKETs,intlevel,intoptname,constchar*optval,intop......
  • MinGW-w64 C/C++编译器的下载和安装
    1.介绍        MinGW(“MinimalistGNUforWindows”),以前称为mingw32,是一个用于创建MicrosoftWindows应用程序的免费开源软件开发环境。        MinGW-w64项目是gcc的完整运行时环境,支持Windows64位和32位操作系统本机二进制文件。2.安装包下载......
  • C++常见错误及分析
    warning:'typedef'wasignoredinthisdeclaration问题代码:点击查看代码typedefstructsqList{//把typedef删掉intarrayList[maxSize];intlengthList;};//或者是在后面加上sqList。error:invalidtypes'int[int]'forarraysubscript(数组下标......
  • # C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解
    C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的queue用法整理C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解queue1.queue构造函数2.queue存取、插入和删除操作3.......