力扣题目
解题思路
java代码
力扣题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
解题思路:
函数 longestCommonPrefix
分析:
- 首先,处理了数组长度为 0 的特殊情况,直接返回空字符串。
- 初始化公共前缀为数组的第一个字符串
strs[0]
。 - 然后通过一个循环遍历数组的其余部分。
- 在每次循环中,使用
indexOf
方法检查当前字符串是否以当前的前缀开头。如果不是,就缩短前缀(通过去掉最后一个字符)。 - 如果前缀缩短到空字符串,说明没有公共前缀,直接返回空字符串。
- 在每次循环中,使用
java代码:
package org.example.mouth8;
public class Leetcode14 {
public static void main(String[] args) {
String[] strs = new String[]{"flower","flow","flight"};
System.out.println(longestCommonPrefix(strs));
}
public static String longestCommonPrefix(String[] strs) {
if (strs.length == 0) {
return "";
}
String prefix = strs[0];
for (int i = 1; i < strs.length; i++) {
while (strs[i].indexOf(prefix) != 0) {
prefix = prefix.substring(0, prefix.length() - 1);
if (prefix.isEmpty()) {
return "";
}
}
}
return prefix;
}
}
更多详细内容同步到公众号,感谢大家的支持!
每天都会给刷算法的小伙伴推送明日一题,并且没有任何收费项