250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- Leetcode #javascript #알고리즘 #Algorithms #js
- 연결 요소 제거하기
- 헤르메스 엔진
- create-next-app
- ResizeObserver
- 통신망분석
- mutationobserver
- 날짜 테스트
- nextjs-performance
- mock date
- 호텔 대실
- 테이블 해시 함수
- 리액트네이티브 엔진
- Google 애널리틱스
- 구름톤
- jest
- 최솟갑 구하기
- 자바스크립트
- JavaScript
- nextjs
- Hermes Engine
- 중첩 점
- 과제 진행하기
- 테스트 Date
- Jest uuid syntax
- 리액트네이티브
- 프로그래머스
- 귤 고르기
- 구름톤챌린지
- 구름톤 챌린지
Archives
- Today
- Total
나만보는개발공부블로그
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.
문자열이 있는 배열들 중에서 같은 문자를 가진 가장 긴 공통 앞문자열을 반환하는 함수를 작성하라.
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function (strs) {
let longestWord = "";
let inc = 0, x = 0;
while (true) {
if (strs.length == 0) return "";
if (strs.length == 1 && strs[0] == "") return "";
if (strs.length == 1) return strs[0];
if (strs[0] == "") return "";
if (x === strs.length - 1) {
x = 0;
}
if (strs[x][inc] != strs[x + 1][inc]) {
break;
}
else {
x++;
if (x === strs.length - 1) {
longestWord += strs[x][inc];
inc++;
}
if (inc == strs[x].length) {
break;
}
}
}
return longestWord
}
문제풀이
- 예시로 flower, flow, flight가 있으면 각각의 앞 문자를 하나씩 뽑아서 각각 비교해나가면 된다. 나의 경우 while문을 돌면서 x,inc변수로 조건들을 돌면서 같은 공통 단어들을 돌아가면서 추가해나간다. 문제를 풀면서 테스트케이스에 많이 걸려서 제대로 작성하지는 못했다. 남의 코드를 참조해보니 string 내장객체를 이용해서 간편하게 풀었다. 테스트케이스에서 ["a"], ["",""],[""] 에서 걸렷다.
const longestCommonPrefix = (strs) => {
if (!strs.length) return ''
let prefix = ''
let index = 0
while (index <= strs[0].length-1) {
let ch = strs[0][index]
for (let i = 1; i < strs.length; i++) {
if (strs[i][index] !== ch) {
return prefix
}
}
index++
prefix += ch
}
return prefix
};
'Algorithms > leetcode' 카테고리의 다른 글
merge-two-sorted-lists (0) | 2021.02.11 |
---|---|
Climbing Stair (0) | 2021.02.10 |
[Array] Plus One (0) | 2021.02.09 |
(String) Length of Last Word (0) | 2021.02.08 |
Two sum (0) | 2021.02.06 |