1.题目描述
给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
数据范围: 0≤n≤50000≤n≤5000, 0≤len(strsi)≤50000≤len(strsi)≤5000
进阶:空间复杂度 O(1)O(1),时间复杂度 O(n∗len)O(n∗len)
示例1
输入:
["abca","abc","abca","abc","abcc"]返回值:
"abc"示例2
输入:
["abc"]返回值:
"abc"
2.解题思路
选择第一个字符串作为基准,依次对比后序字符串对应下标上的字符是否与当前字符串对应的值相同,如果相同,则继续比较下一个位置,否则直接返回当前位置之前的前缀子串
3.代码实现
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param strs string字符串一维数组
* @return string字符串
*/
public String longestCommonPrefix (String[] strs) {
// write code here
if (strs.length == 0) return "";
for (int i = 0; i < strs[0].length(); i++) {
char c = strs[0].charAt(i);
for (int j = 1; j < strs.length; j++) {
if (i == strs[j].length() || strs[j].charAt(i) != c) {
return strs[0].substring(0,i);
}
}
}
return strs[0];
}
}