题解 | #最长公共前缀#

最长公共前缀

https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

import java.util.*;


public class Solution {
    /**
     * 
     * @param strs string字符串一维数组 
     * @return string字符串
     */
    public String longestCommonPrefix (String[] strs) {
        // write code here
	   //如果输入数组长度为0,直接不用考虑
       if(strs.length == 0){
           return "";
       }
       //先当第一个是公共的,之后不断缩短它
       String  prefix = strs[0];
       for(int i = 1; i< strs.length; i++){
            String curr = strs[i];
            int j = 0;
		 	//这是为了找到prefix与curr的公共子串
            while(j < curr.length() && j < prefix.length() && curr.charAt(j) == prefix.charAt(j)){
                j++;
            }
			//当j==0,说明没有相同的
            if(j == 0){
                return "";
            }
            prefix = prefix.substring(0,j);  
       }
       return prefix;
    }
}

思路,用了两个循环,第一个循环遍历数组,第二个找数组元素,也就是字符串,每一个字符串与之前找到的公共前缀的公共前缀。这是一个不断缩短的过程。

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务