Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
思路:题目意思是所有字符串的最长公共前缀。首先我们看两个字符串的最长公共前缀,他们的前缀不可能超过最短字符串的长度。所以在这个长度内比较他们的最长公共前缀prefix,并记录其俩最长公共前缀的位置,得到他们俩的最长公共前缀作为下次比较。如果任何字符串长度为0,则输出空字符串。
class Solution { public: string longestCommonPrefix(vector<string> &strs) { if(strs.size()==0) return ""; string prefix=strs[0]; for(int i=1;i<strs.size();i++) { int min_len=0; int prefix_len=prefix.length(); int strs_ilen=strs[i].length(); if(prefix_len==0||strs_ilen==0) return ""; if(prefix_len<strs_ilen) min_len=prefix_len; else min_len=strs_ilen; int j; for(j=0;j<min_len;j++) { if(prefix[j]!=strs[i][j]) break; } prefix=prefix.substr(0,j); } return prefix; } };