Longest Common Prefix-new
题目:Write a function to find the longest common prefix string among an array of strings.
思路:
1. 设定初始Prefix为""
2. 对第二个字符串-最后一个字符串里的第n个字母进行循环。以第一个字符串里的第n个字母为比较对象
如果循环过程中某一个字符串的字母n不等于第一个字符串里的字母n了,return 现在已有的prefix
3. 循环结束,更新现有的Prefix,加上字母n
对第一个字符串内的所有字母进行2 3 两步的循环。
最后beat 51%的人。
1 class Solution { 2 public: 3 string longestCommonPrefix(vector<string>& strs) { 4 string prefix=""; 5 if(strs.empty()) return prefix; 6 for(int i=0; i<strs[0].size(); i++){ // go through each character 7 for(int j=0;j<strs.size();j++){ 8 if(strs[j][i]!=strs[0][i]) 9 return prefix; 10 } 11 //if(i==strs.size()) //means all the string has been checked, this condition could be omitted 12 prefix+=strs[0][i]; 13 } 14 return prefix; 15 } 16 };
尝试了一下网上另一种解答
class Solution {
public:
string longestCommonPrefix(vector<string>& strs)
{
int min = 0;
while (strs.size() > 0)
{
for (string s: strs)
{
if (s.size() == min || s[min] != strs[0][min]) return strs[0].substr(0, min);
}
min++;
}
return "";
}
};
其实思路是一致的。尝试了下以前用的比较少的一些函数比如subsrt 和for(string s:strs)的写法。但不知道为啥这方法运行速度很慢?只打败了2%的人。

浙公网安备 33010602011771号