编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例一:
示例二:
思路分析:
此题可以采用纵向扫描的方式解题:
将第一个字符串的长度作为列数,将字符串数组的长度作为行数,按照纵向依次比较某个字符是否均相等,一旦发现不相等的便直接通故substring函数截取部分字符串返回;需要注意:如果在遍历过程中发现strs[j].length()==i,则直接返回部分字符串,因为这表示某一个字符串已经遍历结束;如果循环结束还没有返回,则表示第一个字符串就是最长公共前缀;
代码展示:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0)
return "";
int rows = strs.length;
int cols=strs[0].length();
for(int i=0;i<cols;i++) {
char c=strs[0].charAt(i);
for(int j=0;j<rows;j++) {
if(strs[j].length()==i || strs[j].charAt(i)!=c)
return strs[0].substring(0,i);
}
}
return strs[0];
}
}