classSolution{ funccheckInclusion(_s1: String, _s2: String) -> Bool { if s1.count > s2.count { returnfalse } let a =Array(s1), b =Array(s2), m = s1.count, n = s2.count var count1 = [Int](repeating: 0, count: 26) var count2 = [Int](repeating: 0, count: 26) //比较短字符串长度下是否是对应排列的子串,检查元素 for i in0..< m { count1[Int(a[i].asciiValue!) -97] +=1 count2[Int(b[i].asciiValue!) -97] +=1 } if count1.elementsEqual(count2) { returntrue } for i in m ..< n { //滑动窗口向后移动,去掉滑动窗口前一个元素 count2[Int(b[i].asciiValue!) -97] +=1 count2[Int(b[i-m].asciiValue!) -97] -=1 if count1.elementsEqual(count2) { returntrue } } returnfalse } }