LeetCode-14. 最长公共前缀

LeetCode-14. Longest Common Prefix

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

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

示例 1:

输入: [“flower”,”flow”,”flight”]
输出: “fl”
示例 2:

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

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

问题分析

本题是求字符串的最长公共前缀,可以先把第一个字符串当做标准,然后依次与后面的字符串进行比较,在比较中不断的缩短第一个字符串的长度,知道等于为止。

Java代码如下:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length <= 0) {
            return "";
        }
        // 以第一个字符串作为标准
        String s = strs[0];
        for (int i = 1; i < strs.length; i++) {
            // strs[i].indexOf(s) != 0说明s出现并不在第一个字符。
            // 不满足最长前缀。因此需要缩短s长度,再比较。
            // 如果start[i]中没有s,返回-1,继续截取s比较。
            while (strs[i].indexOf(s) != 0) {
                s = s.substring(0, s.length() - 1);
                if (s.length() == 0) {
                    return "";
                }
            }
        }
        return s;
    }
}

Java知识点普及

(1)String的indexOf()方法的用法:

1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的第一个字符的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

(2)String的startsWith()方法的用法:

方法的声明如下:

public boolean startsWith(String prefix);

该方法可以判断一个字符串是否以prefix前缀开头。返回值为boolean。

本题放入通过率为:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36387730/article/details/81665157