码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode刷题记录_最长公共前缀

时间:2018-07-28 16:42:28      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:mount   解法   com   flight   string   注意   amount   函数   存在   

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

 

题解:

用两层循环,第一层循环选定字符串str[0],用substring获得str[0]的各个分字符串,在第二层循环中与其他字符串的substring对比,若不同则返回前一个子串:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        
        int amount = strs.length;
        if (amount==0) return "";
        int len = strs[0].length();
        for(int i=1;i<amount;i++){
            if(strs[i].length()<len)
                len=strs[i].length();
        } 
        String str="";
        for(int i=1;i<=len;i++){
            str=strs[0].substring(0,i);
            for(int j=1;j<amount;j++){
                if(!str.equals(strs[j].substring(0,i)))
                    return str.substring(0,i-1);
            }
        }
        return str;
    }
}

 注意:1.substring中string的s为小写。

2.对字符串个方法的掌握还是太差了,别人的解法中看到了用str1.indexOf(String str2)求解的,该方法若存在返回[0,str1.length()-str2.length()]的值,不存在返回-1,所以只需从str1.substring(0,str.length())到str1.substring(0,0)判断indexOf的返回值是否为0,若为0则返回字符串,否则str1=str1.substring(0,str1.length()-1)

LeetCode刷题记录_最长公共前缀

标签:mount   解法   com   flight   string   注意   amount   函数   存在   

原文地址:https://www.cnblogs.com/annofyf/p/9382358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!