給定兩個字符串s1
和s2
甫菠,如果s2
包含s1
的排列蹦疑,則寫一個函數(shù)返回true完慧。 換句話說刻蚯,第一個字符串的排列之一是第二個字符串的substring
绊含。
樣例
樣例1:
輸入: s1 = "ab" s2 = "eidbaooo"
輸出: true
解釋: s2包含s1的一個排列("ba").
樣例2:
輸入: s1= "ab" s2 = "eidboaoo"
輸出: false
題意:第一個字符串的排列之一是第二個字符串的`substring`。
思路:
1炊汹、將 s1 轉(zhuǎn)換成數(shù)組后排序 a
2、從s2 中截取跟 s1 長度開始的子字符串轉(zhuǎn)換成數(shù)組后排序 b
3逃顶、如果 Arrays.equals(a,b) return i
public class Solution {
/**
* @param s1: a string
* @param s2: a string
* @return: if s2 contains the permutation of s1
*/
public boolean checkInclusion(String s1, String s2) {
// write your code here
if (s1 == null || s2 == null || s1.length() > s2.length()) {
return false;
}
int length = s2.length();
int len = s1.length();
char[] a = s1.toCharArray();
Arrays.sort(a);
for (int i = 0; i <= length-len; i++) {
char[] b = s2.substring(i, i + len).toCharArray();
Arrays.sort(b);
if (Arrays.equals(a, b)) {
return true;
}
}
return false;
}
}