问题描述:
Write a function to find the longest common prefix string amongst an array of strings.
分析:
两两取最长相同前缀
代码如下:
public 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 == "") return "";
}
}
return prefix;
}
涉及到两个String的函数:
1.indexOf()
以下摘自菜鸟教程:
indexOf() 方法有以下四种形式:
·public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
·public int indexOf(int ch, int fromIndex): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
·int indexOf(String str): 返回指定字符串在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
·int indexOf(String str, int fromIndex): 返回指定字符串在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
2.substring()
substring() 方法返回字符串的子字符串。
·public String substring(int beginIndex)
或
·public String substring(int beginIndex, int endIndex)