zoukankan      html  css  js  c++  java
  • Day 62

    第567题:

    给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。

    换句话说,第一个字符串的排列之一是第二个字符串的子串。

    1、看示例可知,判断s2是否包含一个字符串,这个字符串内只有s1内的字符,顺序可打乱;

      如果含有其他的字符说明不符合,返回false,如果一直这个字符串内包含所有s1的字符,那么只需要判断这个字符串内元素个数是否等于s1的长度即可;

      可以用两个指针 left right 来实现滑动窗口判断s2是否包含s1的排列;

      用valid来保存滑动窗口内的字符是否满足s1内字符的数量要求;

      然后当滑动窗口长度等于s1长度时,判断valid和存储s1的哈希表key比较,相等说明各种字母都有且数量满足,返回true;

      否则返回false。

      

    第438题:

    给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。

    字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。来源:力扣(LeetCode)

    说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。

    1、上面那题是寻找s2中是否存在s1的排列,这道题是找字母异位词,也就是字母相同排泄不同的字符串,返回这个子串的起始索引;

      那么只需要在上面的代码上加一个结果集,然后每次都将符合的子串的起始索引加到结果集即可;

      最后返回结果集。

      

      



  • 相关阅读:
    GCC-windows的预编译版本——nuwen MinGW
    stm32 flash和sram
    NAND Flash和NOR Flash的比较
    emwin如何在windows10下vs2015或2017进行仿真。
    IIC简介(转载)
    ubuntu版本查看
    下载速度更加快的 SourceForge 镜像
    使用virtualbox安装的Ubuntu,窗口分辨率过小,使用增强工具完成和vmtools一样的功能。
    C#中的结构体与类的区别
    理解C#值类型和引用类型
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13623045.html
Copyright © 2011-2022 走看看