题目如下:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 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;
}
}在这里插入代码片