Post

leetcode(리트코드)1408-String Matching in an Array

leetcode(리트코드)1408-String Matching in an Array

leetcode 1408 - String Matching in an Array 문제입니다.

1. 문제

https://leetcode.com/problems/string-matching-in-an-array/


2. Input , Output


3. 분류 및 난이도

Eazy 난이도 문제입니다.


4. 문제 해석

  • words라는 string 벡터가 들어옵니다.
  • 벡터들의 요소를 비교했을 때 해당 요소가 다른 요소의 substring일 경우 그 요소를 결과 벡터에 넣어 반환하세요.

5. code

코드설명

  • for문 2개를 써서 brute하게 접근합니다. 이유는 최대 100개의 길이를 가진 vector가 들어오므로 O(n^2)이여도 많은 시간이 걸리지 않기 때문입니다.
  • 만약 같은 요소를 가리키고 있으면 continue로 스킵해주고 다른 요소에서 substring을 찾았으면 결과벡터에 넣어주고 break합니다.

c++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
    vector<string> stringMatching(vector<string>& words) {
        
        set<string> st;
        for(int i = 0 ; i <words.size() ; ++i){
            for(int j = 0 ; j < words.size();++j){
                if(i==j) continue;
                if( words[j].find(words[i]) != -1){
                    st.insert(words[i]);
                    break;
                }
            }
        }
        vector<string> res(st.begin(),st.end());
        return res;    
    }
};

6. 결과 및 후기, 개선점

c++ 87% 4ms

This post is licensed under CC BY 4.0 by the author.