题解 | 最长公共前缀
最长公共前缀
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%内容,订阅专栏后可继续查看/也可单篇购买
小白专属-牛客题解 文章被收录于专栏
专注于牛客平台编程题题解,文字+图解。内容很细,小白友好系列