我的刷题之路

本文详细解析了LeetCode-14题目的解决方案,通过判断输入字符串的有效性并找到最短字符串长度,进而利用StringBuilder实现最长公共前缀的查找。文中提供了完整的Java代码示例。

LeetCode-14-最长公共前缀

题目:
在这里插入图片描述
首先做一个判断看输入的字符串是否为空或者字符串的长度是否为0;
不为空的话,我们把第一个字符串作为参考值,赋值给minl
紧接着做一个遍历,找出字符串最短的,将这个长度给minl;
我们已经找到最小的长度了,紧接着我们再来看公共前缀
创建了一个stringbuilder对象使用了可变字符串的方法,用一个布尔值来进行判断;
在最短字符串的前提下,使用charAt方法返回指定索引处的字符,赋值给ci;
然后再做一次循环,对布尔值进行改变,如果为真就调用stringbuilder中的append方法对字符串进行改变,找到公共最长前缀;

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs==null||strs.length==0){
            return "";
        }
        //strs[0]=flower
        int minl = strs[0].length();//length()为得到字符串的长度
        for(int i=1; i<strs.length; i++){//length为得到总容量,i=2
            if(strs[i].length()<minl){//3<5,5>3
                minl = strs[i].length();//minl=3
            }
        }
        StringBuilder sb = new StringBuilder();//字符可变
        for(int i=0; i<minl; i++){//minl=3
             boolean same=true;
             char ci = strs[0].charAt(i);//charAt返回指定索引处的字符,ci=flo
             for(int j=1; j<strs.length; j++){
                if(strs[j].charAt(i)!=ci){
                    same=false;
                    break;
                }
            }
            if(same){
                sb.append(""+ci);//stringbuilder中append方法的调用
            }else{
                return sb.toString();//返回当前字符串
            }
        }
        return sb.toString();
        
    }
    }
 


我觉着吧,关于append方法的调用,我好像还有点问题,今天之后我想着把每一个遇到的问题什么的都用word记录下来,以后可以定期看一看,而且也方便别人来看,大家认为怎么样呢?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值