[面试常问总结] 5. 字符串数组最长公共前缀 (循环一个元素的字符 , 判断其他元素同索引位置是否都相同)

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:

 

 

 示例 2:

 

 

 

说明:
所有输入只包含小写字母 a-z 。

思路:

遍历第一个元素  , 获取到索引 , 循环所有的元素 , 获取当前到当前索引的字串 , 如果有不相等的就返回 , 全相等才继续

go语言代码:

复制代码
//最长公共子字符串
//例如: {"abc", "ab","abcdef"} 返回ab ;{"abc", "ab","c"} 返回空
func LongestCommonPrefix(strs []string)string{
    length:=len(strs)
    if length==0{
        return ""
    }
    //先把字符串转成字符rune
    first:=[]rune(strs[0])
    //定义变量
    var commonPrefix string
    //循环第一个字符串 , 主要是获取索引
    for i,_:=range first{
        //取出第一个字符串 , 到当前索引时的子串
        firstPrefix:=string(first[0:i+1])
        //判断是否有不相等的标志位
        flag:=true
        //循环所有的字符串数组
        for _,str:=range strs{
            //每次循环的时候置空一下
            //commonPrefix=""
            item:=[]rune(str)
            //取出每项 , 到当前索引的子串
            itemPrefix:=string(item[0:i+1])
            //如果有一个不相等就是flag false
            if firstPrefix!=itemPrefix{
                flag=false
            }
        }
        if flag{
            //赋值给结果
            commonPrefix= firstPrefix
        }else{
            return commonPrefix
        }
    }
    return commonPrefix
}
复制代码

 

posted @   唯一客服系统开发笔记  阅读(93)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-05-18 [Go] golang http下返回json数据
2016-05-18 [javaSE] 类型转换(1加1等于几)
2016-05-18 [javaSE] 变量的传值与传址
2016-05-18 [PHP] Yaf框架的简单安装使用
2016-05-18 [PHP] 链表数据结构(单链表)
点击右上角即可分享
微信分享提示
1
chat with us