转载

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

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

原文  http://codechina.org/2019/05/leetcode-567-permutation-in-string-java/
正文到此结束
Loading...