领扣(LeetCode)最长公共前缀 个人题解

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

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

示例 1:

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

示例 2:

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

说明:

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

这题比较简单,采用O(m*n)的算法复杂度,即对每个串内的字符一个字符一个字符判断,可以比较容易解决问题。不过要注意字符串数组越界的问题。

代码如下:

 1 class Solution {
 2     public String longestCommonPrefix(String[] strs) {
 3         String ans = "";
 4         if (strs.length == 0)
 5             return ans;
 6         int minlen = strs[0].length();
 7         for (String string : strs) {
 8             if (string.length() < minlen)
 9                 minlen = string.length();
10         }
11         for (int i = 0; i < minlen; i++) {
12             char tmp = strs[0].charAt(i);
13             for (int j = 1; j < strs.length; j++) {
14 
15                 if (strs[j].charAt(i) == tmp)
16                     continue;
17                 else
18                     return ans;
19             }
20             ans += tmp;
21         }
22         return ans;
23     }
24 }
原文地址:https://www.cnblogs.com/axiangcoding/p/9931578.html