import java.util.*;


public class Solution {
	public static final String EMPTY = "";

    public String longestCommonPrefix(String[] strs) {
        // write code here
        if (strs == null || strs.length == 0) {
            return EMPTY;
        }

        String tmp = strs[0];
        int length = (tmp == null ? "" : tmp).length();

        for (String str : strs) {
            //若某个字符串元素为空,则直接返回
            if (str == null || str.equals(EMPTY)) {
                return EMPTY;
            }

            //每个字符串元素都和第一个比较,找出他们的最长前缀下标
            length = compare(tmp, str, length);
            if (length == 0) {
                return EMPTY;
            }
        }

        return tmp.substring(0, length);
    }

    /**
     * @param a      固定为strs首个元素
     * @param b
     * @param length 最长公共前缀长度
     * @return
     */
    private int compare(String a, String b, int length) {
        int i = 0;
        while (i < length && i < b.length()) {
            if (a.charAt(i) != b.charAt(i)) {
                break;
            }
            i++;
        }
        return i;
    }
}