编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
菜鸡代码:
C++:执行用时:16 ms
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.empty()) return ""; for(int i=0;i<strs[0].size();i++) { for(int j=1;j<strs.size();j++) { if(i>=strs[j].size()||strs[j][i]!=strs[0][i]) return strs[0].substr(0,i); } }return strs[0]; } }; |
JAVA:初学Java,所以费了快我俩小时。
执行用时:1 ms
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Solution { 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.isEmpty()) return ""; }return prefix; } } |