Java117 最长公共前缀

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

先想思路,看题解,对照题解思路一不一样,很一样直接开始写,没思路直接看题解

java 复制代码
public class Solution6 {
    public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0)
            return "";//字符串为空,没公共前缀。
        String ans = strs[0];//第一个元素为ans
        for(int i =1;i<strs.length;i++) {//遍历ans
            int j=0;
            for(;j<ans.length() && j < strs[i].length();j++) {//啥意思 ;前面没有内容,表示循环变量i已经在循环外部定义和初始化
                //这么定义有啥好处:这种写法通常用于当循环变量需要在循环外部初始化,或者需要保留循环结束后的i值的情况。
                //j<strs第一个字符串的长度 并且 j小于字符串组当前遍历到的字符串的长度
                if(ans.charAt(j) != strs[i].charAt(j))//如果ans的第j个元素 和 字符串组中第i个元素的 (当前遍历元素)的第j个字符不同
                    //退出循环
                    break;//break是退出当前循环吗?是的 退出for循环 输出相同的当前元素的第j个以及字符串数组中第i个。
            }
            ans = ans.substring(0, j);//啥意思?​从字符串 ans中截取从索引 0 开始到索引 j(不包括 j)的子字符串,并将结果重新赋值给 ans。
            if(ans.equals(""))//为啥会="" 没有想等的 前缀
                return ans; //是return 原来的ans 还是return 现在的null
        }  
        return ans;//执行完了,返回ans
        //计划弄个表看下
    }
}
java 复制代码
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0) 
            return "";
        String ans = strs[0];
        for(int i =1;i<strs.length;i++) {
            int j=0;
            for(;j<ans.length() && j < strs[i].length();j++) {
                if(ans.charAt(j) != strs[i].charAt(j))
                    break;
            }
            ans = ans.substring(0, j);
            if(ans.equals(""))
                return ans;
        }
        return ans;
    }
}

strs={"flower","flow","flight"}

str.length!=0

ans="flower"

str.length()=

strs i j ans j<ans.length() && j< strsi.length() ans.charAt(j) strsi.charAt(j) ans=ans.substring(0,j)
"flower","flow","flight" 1 0 flower 0<6&&0<4 ok a flow.charAt0=f f
2 1 flower 1<6 1<strs2.length=6 ok ans.charAt(1)=l strsi.charAt(j)=strs2.charAt1=flight.charAt1=l ans=


ans=ans.substring(0,j)不太理解。

j初始不是0吗?

外部定义


ans=ans.substring(0,j)不太理解。

j初始不是0吗?

外部定义 会变得 根据for

今天晚上再说

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
vipxieliang2 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot