250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code c++)Longest Common Prefix 본문
728x90
반응형
14. Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: strs = ["flower","flow","flight"] Output: "fl"
Example 2:
Input: strs = ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings.
Constraints:
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] consists of only lower-case English letters.
주어진 문자열 벡터를 오름차순으로 정렬을 한 후 시작.
정렬된 strs에서 맨 앞에 있는 가장 짧은 문자열을 선택하여, prefix가 존재하는지 확인하도록 한다.
substr()을 이용해 문자열을 잘라 prefix에 저장한다.
그리고 1 ~ strs.size() 만큼 벡터를 순회하면서 0번째의 prefix와 j 번째의 prefix가 같은지 비교하면 된다.
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string answer = "";
sort(strs.begin(), strs.end());
for(int i = 0; i < strs[0].size(); i++){
string prefix = strs[0].substr(0, i + 1);
bool check = true;
for(int j = 1; j < strs.size(); j++){
if(strs[j].substr(0, i + 1) != prefix){
check = false;
break;
}
}
if(check){
answer = prefix;
}
}
return answer;
}
};
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code c++)Merge Two Sorted Lists (0) | 2021.07.07 |
---|---|
(Leet Code c++)Valid Parentheses (0) | 2021.07.07 |
(Leet Code c++)Roman to Integer (0) | 2021.07.06 |
(Leet Code c++)Palindrome Number (0) | 2021.07.06 |
(Leet Code c++)ZigZag Conversion (0) | 2021.07.05 |