392. 判断子序列
2022-07-07 本文已影响0人
邦_

func isSubsequence(_ s: String, _ t: String) -> Bool {
let len1 = s.count , len2 = t.count
//子序列不能大于主序列
if len1 > len2 {
return false
}
let array1 = Array(s) , array2 = Array(t)
var index1 = 0, index2 = 0, hasFind = false
while index1 < len1 {
let c = array1[index1]
while index2 < len2 {
hasFind = false
if c == array2[index2] {
index2 += 1
hasFind = true
break
}else{
index2 += 1
}
}
//右边的走到头了还没有找到。或者左边的没有走到头,右边的走到头了
if (index2 == len2) && (!hasFind || index1 != len1 - 1){
return false
}
index1 += 1
}
return true
}