본문 바로가기
Algorithm/LeetCode

[LeetCode] 14. Longest Common Prefix (C++)

by shine-jung 2021. 7. 27.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
접미사 문자열을 생성한다.
맨 앞 문자열을 나머지 문자열과 비교하면서 접미사를 구한다.
    맨 앞 문자열의 0부터 i까지 부분을 tmp이라고 하자.
    substr 함수를 사용하자.
    tmp가 나머지 문자열의 앞 부분과 다르면 이전 단계까지의 접미사 문자열을 반환한다.
    아니라면, 접미사 문자열에 tmp를 저장한다.
tmp를 반환한다.
*/

 


 

코드

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string pre = "";
        for ( int i = 0; i < strs[0].length(); i++ ) {
            string tmp = strs[0].substr(0, i+1);
            for ( int j = 1; j < strs.size(); j++ ) {
                if ( i == strs[j].size() || strs[j].substr(0, i+1) != tmp )
                    return pre;
            }
            pre = tmp;
        }
        return pre;
    }
};

 


 

느낀점

 

비슷한 문제를 파이썬으로 풀어봤었는데 이번에는 substr를 이용해서 C++로 풀어봤다.

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글