문제정의
- 문자열 배열을 인자로 입력받아, 문자열들의 Longest Common Prefix를 반환하는 함수를 구현한다.
- Prefix는 한국어로 접두어를 뜻한다.
<ex1>
Input: strs = ["flower","flow","flight"]
Output: "fl"
<ex2>
Input: strs = ["dog","racecar","car"]
Output: ""
풀이
public class Solution
{
public String longestCommonPrefix(String[] strs)
{
StringBuffer str_temp = new StringBuffer(strs[0]);
boolean flag = true;
int len = str_temp.length();
for (int j = 0; j < len; ++j)
{
for(int i=0; i < strs.length; ++i)
{
if (strs[i].indexOf(str_temp.toString()) != 0)
flag = false;
}
if(flag == false)
str_temp.deleteCharAt(str_temp.length()-1);
else
{
return str_temp.toString();
}
flag = true;
}
return null;
}
}
- String 은 문자열의 변형이 어렵기 때문에, StringBuffer를 사용했다.
- 입력받은 배열중 첫 문자열을 StringBuffer에 넣고, StringBuffer의 끝자리를 하나씩 제거하며, 모든 문자열과 비교하였다. (모든 문자열이 같은 접두어를 포함하고 있어야 하기 때문에)