LeetCode567. Permutation in String

xiaoxiao2021-02-28  87

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: 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; } };
转载请注明原文地址: https://www.6miu.com/read-77360.html

最新回复(0)