LeetCode - 14. Longest Common Prefix(String)*
문제
문자열 배열 중에서 가장 긴 공통 접두사 문자열을 찾는 함수를 작성합니다.
공통 접두사가 없으면 빈 문자열 "을(를) 반환합니다.
https://leetcode.com/problems/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.
풀이
자바입니다.
- indexOf() 를 사용해서 공통된 문자열이 있나 찾는다.
- substring 을 사용해서 문자열을 자른다.
class Solution {
public String longestCommonPrefix(String[] strs) {
String res = strs[0];
for(int i=1;i<strs.length;i++){
while(strs[i].indexOf(res)!=0){
res=res.substring(0,res.length()-1);
}
}
return res;
}
}
다른 풀이를 보던 중 참신한 방법이 있어서 코드를 남깁니다.
Array.sort()를 사용해서 배열을 정렬하고 정렬된 처음 값과 마지막 값을 비교하는 방식입니다.
https://leetcode.com/problems/longest-common-prefix/discuss/721752/Java-100-just-compare-two-strings
class Solution {
public String longestCommonPrefix(String[] strs) {
Arrays.sort(strs);
String first = strs[0];
String last = strs[strs.length - 1];
int c = 0;
while(c < first.length()) {
if (first.charAt(c) == last.charAt(c))
c++;
else
break;
}
return c == 0 ? "" : first.substring(0, c);
}
}
Author And Source
이 문제에 관하여(LeetCode - 14. Longest Common Prefix(String)*), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yamamamo/LeetCode-14.-Longest-Common-PrefixString저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)