/*
两层for循环 "dog","racecar","car"
第一层循环第一个数的长度用于增加长度
第二个循环 遍历每个数组的相同位置用于比较是否是相同;
失败 结果不对
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0) return "";
int count;
int i = 1;
int len = Integer.MAX_VALUE;
for(int j = 0; j < strs.length; j++) {
len = Math.min(len, strs[j].length());
}
for(count = 0; count < len; ) {
while(i < strs.length && str[0].charAt(count) == strs[i].charAt(count)) {
i++;
}
//for(i = 1; i < strs.length; i++) {
// if(strs[0].charAt(count) != strs[i].charAt(count)) {
// break;
//}
//}
if(i == strs.length - 1) {
count++;
continue;
}else {
break;
}
}
if(count == 0 && i != strs.length - 1) {
return "";
}else {
return strs[0].substring(0,count);
}
}
}
*/
/*
思路 首先建立一个储存prefix的string 把数组里面第一个数存进去
循环 整个数组
二层循环 循环数组中每个字符串与prefix比较 是否相同 把相同的部分更新成新的prefix;
*/
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0) return "";
String prefix = strs[0];
for(int i = 1; i < strs.length; i++) {
int j = 0;
while(j < strs[i].length() && j < prefix.length() && strs[i].charAt(j) == prefix.charAt(j)) {
j++;
}
if(j == 0) return "";
prefix = prefix.substring(0,j);
}
return prefix;
}
}