leetcode的最长公共前缀(java)
2020-05-08 04:14
1096 查看
题目如下:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:所有输入只包含小写字母 a-z 。
——————————————分割线——————————————
说实话,我想了一个小时,思路倒是挺好,但是就是觉得转化为代码有些难,一直没有思路
看了一个答案答案的思路,照猫画虎地编了下来
思路如下:先把字符串组的第一个存起来作为参考,然后整一个i循环,重复把字符串组里面后面的字符串赋值给si,再里面套一个while循环遍历所有小于ss和si长度的两个字符串的前l位的每一位,直到试到不同为止,l停止增加
以下代码(只能算是部分原创吧,哈哈):
class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0){ return ""; //一开始这个地方没有考虑到字符组里面没有元素的情况 } String ss=strs[0]; for(int i=1;i<strs.length;i++) //先确定要将字符串strs里面的第几(i)个拿出来跟第一个比 { int l=0;//两个字符串的第l位进行比较 String si=strs[i];//把字符串里的编号为i的提出来 while(l<Math.min(ss.length(),si.length()) && ss.charAt(l)==si.charAt(l)){ //保证l的大小小于俩字符串长度就行了,另外还要第l位相同 l++;//直到比出不同来,l取到了最大值 }ss=ss.substring(0,l); //这个式子,提取前几位 }return ss; } }在这里插入代码片zhuruihe2014 原创文章 10获赞 0访问量 216 关注 私信
相关文章推荐
- leetcode:java.T014_LongestCommonPrefix--写一个函数找出一个字串所数组中的最长的公共前缀
- leetcode第十四题最长公共前缀的java实现
- LeetCode——14 最长公共前缀(Java版)
- 【LeetCode-面试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】
- Leetcode题库-最长公共前缀(java语言版)
- Java&LeetCode 初入门——014. 最长公共前缀
- Leetcode:编写一个函数来查找字符串数组中最长的公共前缀字符串。
- [LeetCode]32. Longest Common Prefix最长公共前缀
- leetcode-最长公共前缀
- LeetCode 14. Longest Common Prefix(最长公共前缀)
- [C++]LeetCode 14: Longest Common Prefix(最长公共前缀)
- LeetCode-14.最长公共前缀
- 【leetcode每日一题】【2019-05-20】14. 最长公共前缀
- golang_算法: leetcode_字符串09-最长公共前缀
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- leetcode总结:最长公共前缀
- leetcode-腾讯精选练习(50 题)python #14最长公共前缀
- Leetcode:14.最长公共前缀
- 滴血总结(java版):最长公共子序列(子串)、最长公共回文子序列(子串)、最长公共前缀(后缀)