LeetCode 第567题 Permutation in String【滑动窗口】(Java)

原题地址:https://leetcode.com/problems/permutation-in-string/

要求

给定两个字符串s1和s2,写一个函数,如果s2包含了s1的排列组合(permutation,就是字符长度跟s1一样,字符频率一样,但是字符出现的位置一样),则返回true。换句话说,第一个字符串的排列组合,是第二个字符串的子串。

例 1:

    输入为: s1 = “ab” s2 = “eidbaooo”

    输出为: True

例 2:

    输入为: s1= “ab” s2 = “eidboaoo”

    输出为: False

注意:

    输入仅包含小写字母,字符串长度范围是[1,10000]。

仔细阅读题目,你会发现,这不就是第438题么?排列组合(permutation)和变位词(anagrams)在这里不是一回事么?所以,我的解决方法很简单。直接把438题的函数findAnagrams实现粘到第567题的类里面,然后再第567题的函数里面调用438题的函数即可。如果你想多练习一下这个思路,重新写一遍也是可以的。

本题代码地址为:https://github.com/tinyfool/leetcode/tree/master/src/p0567

本文假设你对滑动窗口概念有所了解,如果你对滑动窗口的概念不够了解,请参看我介绍滑动窗口的文章,里面有详细的解释

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据