릿코드(LEETCODE)

392. Is Subsequence

cepiloth 2020. 2. 13. 14:51
반응형

 

https://leetcode.com/problems/is-subsequence

 

 

O 풀이

class Solution {
public:
   bool isSubsequence(string s, string t) {
      int nSSize = s.size();
      int nTSize = t.size();
      int nFindCout = 0;
      for(int i = 0; i < nTSize; i++ )
      {
         for( int j = nFindCout ; j < nSSize; j++ )
         {
            if( t[i] != s[j] )
               break;

            nFindCout++;
                i++;
         }
      }

      return nFindCout == nSSize;
   }
};

 

D 풀이

class Solution {
public:
    bool isSubsequence(string s, string t) {
        
        int count = 0;
        int pos = 0;
        for(int i=0; i<s.size(); i++) {
            char code = s[i];
            
            for(int j=pos; j<t.size();j++) {
                if(code == t[j]){
                    pos = j + 1;
                    count++;
                    break;
                }
            }
            
        }
        return s.size() == count;
    }
};

 

B 풀이

class Solution {
public:
    bool isSubsequence(string s, string t) {
      int sIdx = 0, tIdx = 0;
      while(sIdx < s.size()) {
         while (tIdx < t.size() && s[sIdx] != t[tIdx])
            tIdx++;
         if (tIdx == t.size())   // s[sIdx] 가 존재하는데 t[tIdx] 는 존재안하는 경우 false;
            return false;
         sIdx++;
         tIdx++;
      }
      return sIdx == s.size();
    }
};
반응형