字符串的排列

问题陈述

给定两个字符串 s1s2,写一个函数来判断 s2 是否包含 s1 的排列。

换句话说,第一个字符串的排列之一是第二个字符串的子串。

示例:

1
2
3
输入: s1 = "ab" s2 = "eidbaooo"
输出: True
解释: s2 包含 s1 的排列之一 ("ba").

算法思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Solution{
public boolean checkInclusion(String s1,String s2){
s1=sort(s1);
for(int i=0;i<=s2.length()-s1.length();i++){
if(s1.equals(sort(s2.substring(i,i+s1.length())))){
return true;
}
return false;
}
}
public String sort(String s){
char[] t=s.toCharArray();
Arrays.sort(t);
return new String(t);
}
}