LeetCode567. Permutation in String

来源:互联网 发布:linux下安装软件 编辑:程序博客网 时间:2024/05/05 19:04

Given two strings s1 and s2, write a function to return true if s2 contains the permutation of s1. In other words, one of the first string’s permutations is the substring of the second string.

Example 1:

Input:s1 = "ab" s2 = "eidbaooo"Output:TrueExplanation: s2 contains one permutation of s1 ("ba").

Example 2:

Input:s1= "ab" s2 = "eidboaoo"Output: False

Note:
The input strings only contain lower case letters.
The length of both given strings is in range [1, 10,000].

class Solution {public:    bool checkInclusion(string s1, string s2) {        int n1=s1.length(),n2=s2.length();        if(n2<n1) return false;        if(n1==0) return true;        int i=0,j=0;        vector<int> v1(26),v2(26);        for(i=0;i<n1;++i){            v1[s1[i]-'a']++;            v2[s2[i]-'a']++;        }        if(v1==v2) return true;        for(j=n1;j<n2;++j){           v2[s2[j-n1]-'a']--;           v2[s2[j]-'a']++;           if(v1==v2) return true;        }        return false;    }};
0 0
原创粉丝点击