LeetCode 字符串的排列
Posted xhBruce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 字符串的排列相关的知识,希望对你有一定的参考价值。
567. 字符串的排列
s1
字符串26小写字母统计s2
连续查找抵消s1
统计- 某个字符
ch1[k] < 0
时按照s2
从left
开始回复ch1[k]
s2
连续包含,匹配个数为s1
长度i - left + 1 == n
,返回true
class Solution {
public boolean checkInclusion(String s1, String s2) {
int n = s1.length();
int m = s2.length();
if (n > m) {
return false;
}
int[] ch1 = new int[26];
for (int i = 0; i < n; i++) {
int k = s1.charAt(i) - 'a';
++ch1[k];
}
int left = 0;
for (int i = 0; i < m; i++) {
int k = s2.charAt(i) - 'a';
--ch1[k];
while (ch1[k] < 0) {
++ch1[s2.charAt(left) - 'a'];
++left;
}
if (i - left + 1 == n) {
return true;
}
}
return false;
}
}
以上是关于LeetCode 字符串的排列的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# LeetCode程序员面试金典:回文排列