LeetCode-14. Longest Common Prefix
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,”flow”,”flight”]
输出: “fl”
示例 2:
输入: [“dog”,”racecar”,”car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
问题分析
本题是求字符串的最长公共前缀,可以先把第一个字符串当做标准,然后依次与后面的字符串进行比较,在比较中不断的缩短第一个字符串的长度,知道等于为止。
Java代码如下:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length <= 0) {
return "";
}
// 以第一个字符串作为标准
String s = strs[0];
for (int i = 1; i < strs.length; i++) {
// strs[i].indexOf(s) != 0说明s出现并不在第一个字符。
// 不满足最长前缀。因此需要缩短s长度,再比较。
// 如果start[i]中没有s,返回-1,继续截取s比较。
while (strs[i].indexOf(s) != 0) {
s = s.substring(0, s.length() - 1);
if (s.length() == 0) {
return "";
}
}
}
return s;
}
}
Java知识点普及
(1)String的indexOf()方法的用法:
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的第一个字符的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
(2)String的startsWith()方法的用法:
方法的声明如下:
public boolean startsWith(String prefix);
该方法可以判断一个字符串是否以prefix前缀开头。返回值为boolean。
本题放入通过率为: