Julia's BLOG

LeetCode-567 字符串的排列

2019-02-13

1. 题面

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

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

示例1:

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

示例2:

1
2
输入: s1= "ab" s2 = "eidboaoo"
输出: False

注意:

  1. 输入的字符串只包含小写字母
  2. 两个字符串的长度都在 [1, 10,000] 之间

2. 解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public boolean checkInclusion(String s1, String s2) {
String str1 = sort(s1);

for(int i = 0;i<s2.length()-s1.length()+1;i++) {
String tmp = "";
tmp = s2.substring(i,i+s1.length());
tmp = sort(tmp);
if(str1.equals(tmp)) {
return true;
}
}
return false;
}
public String sort(String str) {
char[] a = str.toCharArray();
Arrays.sort(a);
return new String(a);
}
}
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章