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

我自己的思路是这样的:

把最短的那个字符串找出来--->用该字符串(整串)和其他比较看是否被作为前缀否则截取该字符串后进行比较

代码如下:


提交了之后看了瓶子君的整理感觉更好,以下是搬运,感谢瓶子君(作者:user7746o

链接:https://leetcode-cn.com/problems/longest-common-prefix/solution/tu-jie-leetcodezui-chang-gong-gong-qian-zhui-lcp-b/

解法一:逐个比较

解题思路: 从前往后一次比较字符串,获取公共前缀

画图帮助理解一下:


解法二:仅需最大、最小字符串的最长公共前缀(这里的最小最大是指让字符串先进行比较)

解题思路: 获取数组中的最大值及最小值字符串,最小字符串与最大字符串的最长公共前缀也为其他字符串的公共前缀,即为字符串数组的最长公共前缀

例如 abc 、 abcd 、ab 、ac ,最小 ab 与最大 ac 的最长公共前缀一定也是 abc 、 abcd 的公共前缀

画图帮助理解一下:



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。