题解 | #最长公共前缀#
最长公共前缀
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;
}
}
思路,用了两个循环,第一个循环遍历数组,第二个找数组元素,也就是字符串,每一个字符串与之前找到的公共前缀的公共前缀。这是一个不断缩短的过程。
小天才公司福利 1265人发布