题解 | 最长公共前缀
最长公共前缀
http://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
解法一:纵向扫描
- 将字符串数组看作一个二维空间,每一次从第一列开始。
- 确定所有字符子串中第一列字符。
- 逐层扫描后面每一列,遇到不同字符停止扫描。
- 图解:
Java参考代码:
import java.util.*;
public class Solution {
/**
*
* @param strs string字符串一维数组
* @return string字符串
*/
public String longestCommonPrefix (String[] strs) {
// //纵向扫描
if(strs.length==0 || strs==null){
return "";
}
int rows = strs.length;
int cols = strs[0].length();
//开始扫描
for(int i=0;i<cols;i++){
char firstChar = strs[0].charAt(i);
for(int j=1;j<rows;j++){
if(strs[j].length()==i || strs[j].charAt(i)!=firstChar){
return strs[0].substring(0,i);
}
}
}
return strs[0];
}
}
复杂度分析:
时间复
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
小白专属-牛客题解 文章被收录于专栏
专注于牛客平台编程题题解,文字+图解。内容很细,小白友好系列
