爷也要刷力扣04之最长公共前缀(呜呜呜俺也想要❤)

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: [“flower”,“flow”,“flight”]
输出: “fl”

示例 2:

输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z
解法一:

public static class Solution1 {
    
    
	// horizontal scan
	public String longestCommonPrefix(String[] strs) {
    
    
		if (strs.length == 0) {
    
    
			return "";
		}
		String prefix = strs[0];
		for (int i = 1; i < strs.length; i++) {
    
    
			while (strs[i].indexOf(prefix) != 0) {
    
    
				prefix = prefix.substring(0, prefix.length() - 1);
				if (prefix.isEmpty()) {
    
    
					return "";
				}
			}
		}
		return prefix;
	}
}

解法二:

public static class Solution2 {
    
    
	// vertical scan
	public String longestCommonPrefix(String[] strs) {
    
    
		if (strs.length == 0) {
    
    
			return "";
		}
		for (int i = 0; i < strs[0].length(); i++) {
    
    
			char c = strs[0].charAt(i);
			for (int j = 1; j < strs.length; j++) {
    
    
				if (i == strs[j].length() || strs[j].charAt(i) != c) {
    
    
					return strs[0].substring(0, i);
				}
			}
		}
		return strs[0];
	}
}

猜你喜欢

转载自blog.csdn.net/qq_45864370/article/details/108654757
今日推荐