LeetCode——14 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”

示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。

package exercise;
/**
 * @author zhaoyangZeng
 * 
 *         data: 06/03/2019
 * 
 *         function: longest common prefix
 * 
 *         思路:遍历str中每一个元素,两两比较完后的结果和下一个比
 *
 */
public class Tests {
	/**
	 * @param args 传入需要比较的字符串
	 * @return 返回最长公共前缀
	 */
	public static String longest_common_prefix(String[] str) {
		if (str.length == 0) {
			return "";
		}
		String res = longest(str[0], str[1]);
		for (int i = 2; i < str.length; i++) {
			res = longest(str[i], res);
		}
		return res;
	}

public static String longest(String s1, String s2) {
	String res = "";
	for (int k = 0; k < Math.min(s1.length(), s2.length()); k++) {
		if (s1.charAt(k) == s2.charAt(k)) {
			res += String.valueOf(s1.charAt(k));
		}
	}
	return res;
}

public static void main(String[] args) {
	String[] str1 = { "flower", "flow", "flight" };
	String[] str2 = { "dog", "racecar", "car" };
	String[] str3 = { "leet", "leetcode", "leetdf" };
	String res = longest_common_prefix(str3);
	System.out.println("最长公共前缀是:" + res);

}
}

你可能感兴趣的:(LeetCode——14 最长公共前缀)