问题:

讨论区一位老哥的答案,感觉简单易懂。
求公共前缀。假设字符串数组中第一个字符串为最短的字符串,然后遍历整个字符串数组与它比较字符串长短,最后得出最短字符串minStr。之后遍历最短字符串,截取索引为(0,minStr,length()-1)的字符串,与数组中各个字符串进行比较,如果匹配索引为0,定义cnnt+1,否则cnnt不变。cnnt是为了控制最长匹配字符串就是str的长度,所以一旦cnnt大于等于截取字符串的长度,直接返回截取字符串str即可。
class Solution { public String longestCommonPrefix(String[] strs) { String str; String minStr = strs[0]; int cnnt = 0; for(int i = 0;i<strs.length;i++) { if(strs[i].length()<minStr.length()) { minStr = strs[i]; } } for(int i = 0;i<minStr.length();i++) { str = minStr.substring(0,minStr.length()-i); cnnt = 0; for(int j = 0;j<strs.length;j++) { cnnt = strs[j].indexOf(str)==0?++cnnt:cnnt; } if(cnnt>=strs.length) { return str; } } return ""; } }
1.截取字符串问题:
subString(int beginIndex) 从索引beginIndex开始截取到字符串的末尾。
subString(int beginIndex,int endIndex) 从索引beginIndex开始截取到目标索引endIndex结束,但不包含目标索引处的字符。
2.stringObject.indexOf(searchvalue,fromindex)方法
searchvalue:规定需要检索的字符串值,必须要有。
fromindex:可选的整数参数。省略的话默认值为0,取值范围是(0,stringObject.length-1)。
浙公网安备 33010602011771号