티스토리 뷰

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 "".

문자열 배열 사이에서 가장 긴 공통 접두사 문자열을 찾는 함수를 작성하십시오.
공통 접두사가없는 경우 빈 문자열 ""을 반환합니다.

 

I used to eval function. If you use a different language, the code below will not work
자바스크립트이 eval 이라는 특수 함수를 사용해서 풀었다. 다른언어로 푼다면 다른 알고리즘을 사용해야 할 것입니다.


/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    if(strs.length == 0){return '';}
    var length = strs.length, result = '';
    
    var s = '', min = strs[0].length, j = 0;
    for(let i = 0; i < length ; i++){
        j = (length-1 == i) ? 0 : i+1;
        s = s + '(strs['+i+'][i] == strs['+j+'][i]) && ';
        if(min > strs[i].length){
            min = strs[i].length;
        }
    }
    s = s.substring(0, s.length-4);
    for(let i = 0; i < min ; i++){
        if(i == 0 && !eval(s)){
            return "";
        }
        if(eval(s)){
            result = result + strs[0][i];
        }
    }
    return result;
};