392. 判断子序列

2022-07-07  本文已影响0人  邦_
截屏2022-07-07 11.34.55.png
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
    
    }







上一篇 下一篇

猜你喜欢

热点阅读