java 最长公共字符串前缀 - 最长公共前缀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 最长公共字符串前缀 - 最长公共前缀相关的知识,希望对你有一定的参考价值。

//暴力法,以第一个字符串为检测中心来实验,遍历其他字符串看看是否当前第一个字符串所处的位置i是否不超过该字符串长度并且前缀相同。
	public static String LongestCommonPrefix(String[] dictor){
	    if(dictor==null || dictor.length==0) return "";
	    int size = dictor.length;
	    StringBuilder res = new StringBuilder();
	    for(int i = 0 ; i < dictor.length ; i++){
	        //针对第一个字符串来衡量
	    	int j = 1;
	        for(; j < size; j++){
	            if(i>= dictor.length ||  dictor[j].charAt(i)!=dictor[0].charAt(i)) break;        
	        }
	        if(j==size) res.append(dictor[0].charAt(i));
	        else break;
	    }
	    return res.toString();
	}
//先检测第一个和第二个字符串和第二个字符串公共前缀,然后用前缀和第三个字符串检测。
	public static String LongestCommonPrefix2(String[] dictor) {
		if(dictor==null || dictor.length==0) return "";
		String prev = dictor[0];
		for(int i = 1; i < dictor.length; i++) {
			String cur = dictor[i];
			prev = commonPrefixOfBothString(prev,cur);
		}
		return prev;
	}
	public static String commonPrefixOfBothString(String prev,String cur) {
		StringBuilder res = new StringBuilder();
		for(int i = 0 ; i < prev.length(); i++) {
			if(i < cur.length() && cur.charAt(i)==prev.charAt(i)) res.append(prev.charAt(i));
			else break;
		}
		return res.toString();
	}

以上是关于java 最长公共字符串前缀 - 最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章

14. 最长公共前缀 Java

牛客Top200---最长公共前缀(java)

Java中字符串数组中的最长公共前缀

14.最长公共前缀

我用java刷 leetcode 14. 最长公共前缀

2021-09-15:最长公共前缀。编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ““。力扣14。