[자바JAVA]14. Longest Common Prefix
문제 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 “”.
strs[i] consists of only lower-case English letters.
- 입출력예시
1 | //예시1 |
풀이 코드
1 | class Solution { |
배운 지식
indexOf()를 사용할 생각을 못했다.
indexOf()는 주어진 요소가 배열에 있다면 그 첫번째 인덱스 값를 반환하고 없으면 -1을 반환한다.
아래 3가지 모두 0을 리턴한다.
1 | "ant".indexOf("ant") => 0 |
strs[0]전체를 prefix로 두고 만약 strs[1]과 일치하지 않는다면 strs[0]의 마지막 char를 지워나가는 방식이다.
예를 들어 strs배열이 아래와 같다고 하자.
1 | strs[0] = "flower" |
for문 시작 i=1일때,
flow에flower가 속해있지않다. -> prefix에서flower의 마지막 char인r을 제거 -> 다시 while문
flow에flowe가 속해있지않다. -> prefix에서flowe의 마지막 char인e를 제거 -> 다시 while문
flow에flow가 0번째로 속해있다. -> prefix는flow가 되고 while문 종료for문 시작 i=2일때,
flight에flow가 속해있지않다. -> prefix에서flow의 마지막 char인w을 제거 -> 다시 while문
flight에flo가 속해있지않다. -> prefix에서flo의 마지막 char인o를 제거 -> 다시 while문
flight에fl가 0번째로 속해있다. -> prefix는fl가 되고 while문 종료
항상 생각의 전환을 하자. 항상 더 나은 코드가 있다.
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)