版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sup_chao/article/details/84850761
原题网址(中):https://leetcode-cn.com/problems/longest-common-prefix/
原题网址(英):https://leetcode.com/problems/longest-common-prefix/
题目:
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例:
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
思路:
暴力做法,但注意特殊的字符串数组。
- 字符串数组没有元素、只有一个元素
- 数组中有长度为0 的字符串
代码:
class Solution {
public static String longestCommonPrefix(String[] strs) {
if(strs.length == 0)
return "";
if(strs.length == 1)
return strs[0];
int minLen = strs[0].length();
for(int i = 1; i < strs.length; i++)
if(strs[i].length() < minLen)
minLen = strs[i].length();
if(minLen == 0)
return "";
char[][] cs = new char[strs.length][minLen];
for(int i = 0; i < strs.length; i++)
cs[i] = strs[i].substring(0, minLen).toCharArray();
String string = "";
for(int i = 0; i< minLen; i++) {
char c = cs[0][i];
for(int j = 1; j < strs.length; j++) {
if(c != cs[j][i])
return string;
}
string = string + c;
}
return string;
}
}