HanLue
Everything is Object

问题:

 

讨论区一位老哥的答案,感觉简单易懂。

求公共前缀。假设字符串数组中第一个字符串为最短的字符串,然后遍历整个字符串数组与它比较字符串长短,最后得出最短字符串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)。

 

posted on 2021-05-21 10:19  HanLue  阅读(80)  评论(0)    收藏  举报