题解 | #最长公共前缀#TOP84

import java.util.*;


public class Solution {
    /**
     * 
     * @param strs string字符串一维数组 
     * @return string字符串
     */
    public String longestCommonPrefix (String[] strs) {
        // write code here
        if(strs == null||strs.length == 0){
            return "";
        }
        if(strs.length == 1){
            return strs[0];
        }
        //method 1  ,for循环遍历,不断比较每个字符串 ,二维数组
        int rows = strs.length;
        int cols = strs[0].length();
        //从每列开始,需要注意每个数在这一列的边界
        for(int i = 0; i< cols;i++){
            //取第一行元素的第i个元素
            char item = strs[0].charAt(i);
            //第二行到 rows 行
            for(int r = 1; r < rows ;r++){
                //strs[r].length() > i && strs[r].charAt(i) == item 
                //这是可以继续遍历的条件
                //除非到最后了,有一个数组结束了 或者有一个不相等
                if(strs[r].length() == i || strs[r].charAt(i) != item ){
                    return strs[0].substring(0, i);
                }
            }
        }
        return strs[0];
    }
}
全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务