leetcode(4)-最长公共前缀
查找字符串数组中的最长公共前缀
示例:
输入:strs = ["flower","flow","flight"]
输出:"fl"
python
# 依次遍历字符串数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。
def longestCommonPrefix(self, strs: List[str]) -> str:
# 查找字符串数组中的最长公共前缀
prefix, length = strs[0], len(strs)
for i in range(length):
prefix = self.lcp(prefix, strs[i])
return prefix
def lcp(self, str1: str, str2: str) -> str:
# 查找两个字符串的最长相同前缀
length, index = min(len(str1), len(str2)), 0
while index < length and str1[index] == str2[index]:
index += 1
return str1[:index]
java
# 判断字符串是否以第一个开头,否则截取
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) return "";
String s = strs[0];
for (String st: strs){
if (st.length() == 0) return "";
while (!st.startsWith(s)){
s = s.substring(0, s.length()-1);
}
}
return s;
}