题目
个人解
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
ans=''
if len(strs)==0:
return ans
for i in range(min([len(i) for i in strs])):
for k in range(1,len(strs)):
if strs[0][i]!=strs[k][i]:
return ans
k+=1
ans+=strs[0][i]
return ans
题不难,真的不难,也就是循环比较。但是有细节处理。
官方给出了四种解法,可以仔细了解了解。
一种java的骚操作
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return string();
sort(strs.begin(), strs.end());
string st = strs.front(), en = strs.back();
int i, num = min(st.size(), en.size());
for(i = 0; i < num && st[i] == en[i]; i ++);
return string(st, 0, i);
}
};
先排序,然后比较头和尾就可以了。
复杂度不知道怎样。