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:True Explanation: s2 contains one permutation of s1 ("ba").Example 2:
Input:s1= "ab" s2 = "eidboaoo" Output: FalseNote: 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; } };