문제 설명 :
- 1차원 배열에 여러개의 문자열이 담겨있는데, 문자열들 간에 동일한 Prefix(접두사)가 있다면 출력하는 문제
class Solution {
public String longestCommonPrefix(String[] strs) {
//가장 길이가 짧은 녀석을 찾음.
//그 녀석을 for문 돌리면서 다른 녀석들과 하나씩 비교
String shortest = strs[0];
StringBuffer buffer = new StringBuffer("");
boolean check = true;
for(String s : strs){
if(shortest.length() > s.length()) shortest = s;
}
for(int i=0; i<shortest.length(); i++){
for(int j=0; j<strs.length; j++){
if(shortest.charAt(i) == strs[j].charAt(i) && check){
check = true;
}else{
check = false;
break;
}
}
if(check) buffer.append(shortest.charAt(i)+"");
}
return buffer.toString();
}
}
해설 :
- 일단 범위를 초과할 수 있기 때문에, 배열 내 문자열 중 가장 사이즈가 작은 문자열을 찾아주었다.
- 그리고 해당하는 문자열에서 char로 한 글자씩 뽑아내며, 다른 문자열들에 동일한 값이 있는지 확인해준다.
- 모두 동일한 값이 있을 때 StringBuffe에 해당 char를 append하고, 마지막에 버퍼를 출력해주면 된다.
'Algorithm > LeetCode' 카테고리의 다른 글
| [Java] 21. Merge Two Sorted Lists (0) | 2023.06.07 |
|---|---|
| [Java] 20. Valid Parentheses (0) | 2023.06.07 |
| [Java] 13. Roman to Integer (0) | 2023.06.07 |
| [Java] 9. Palindrome Number (0) | 2023.06.07 |
| [Java] 1. Two Sum (0) | 2023.06.07 |