题目描述
难度 简单
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
暴力穷举字符串比对...
代码实现
执行结果:通过
执行用时:3 ms, 在所有 Java 提交中击败了15.10% 的用户
内存消耗:38.3 MB, 在所有 Java 提交中击败了9.12% 的用户
通过测试用例:123 / 123
记录与总结,2021年 11月 11日 星期四 12:04:28 CST。
我和大佬的差距
/**
* https://leetcode-cn.com/u/jalonjia/
* 这种实现方法好微妙,使用String.startsWith方法+递减字符截取
* <p>
* 执行结果:通过
* 执行用时:0 ms, 在所有 Java 提交中击败了100.00% 的用户
* 内存消耗:36.5 MB, 在所有 Java 提交中击败了48.14% 的用户
* 通过测试用例:123 / 123
* 2021年 11月 11日 星期四 11:56:42 CST
*
* @param strs
* @return
*/
public String longestCommonPrefix(String[] strs) {
if (strs.length < 1 || strs.length > 200) {
return "";
}
if (strs.length == 1) {
return strs[0];
}String commonPrefix = strs[0];
for (int i = 0; i < strs.length; i++) {
while (!strs[i].startsWith(commonPrefix)) {
commonPrefix = commonPrefix.substring(0, commonPrefix.length() - 1);
}
}
return commonPrefix;
}