주어진 문자열 배열에서 가장 긴 공통 접두사를 찾아라.
각 배열에 들어있는 문자열을 첫 글자부터 하나씩 비교해 나간다. 만약 다른 글자를 포함한 것이 있거나 더이상 글자가 없다면 중단해서 그 이전 까지의 문자열이 common prefix이다.
Java code:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0) return "";
StringBuilder result = new StringBuilder();
boolean same = true;
for(int i = 0; i < strs[0].length(); i++) {
char temp = strs[0].charAt(i);
for(int j = 1; j < strs.length; j++) {
if(strs[j].length() <= i) {
same = false;
break;
}
else if(temp == strs[j].charAt(i)) {
continue;
}
same = false;
break;
}
if(same) result.append(temp);
else break;
}
return result.toString();
}
}
StringBuilder를 사용한 이유는 String 클래스의 경우 변경이 일어날 때 마다 새로 메모리에 등록이 된다. 그래서 자주 변경이 일어나는 문자열의 경우 StringBuilder를 사용하는 것이 더 좋다.