LeetCode | Longest Common Prefix

    xiaoxiao2022-07-03  198

    14. Longest Common Prefix

    Description

    Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". Example 1: Input: ["flower","flow","flight"] Output: "fl" Example 2: Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings. Note: All given inputs are in lowercase letters a-z.

    Solution: (Java)

    class Solution { public String longestCommonPrefix(String[] strs) { StringBuilder sb = new StringBuilder(); if (strs.length == 0) return ""; int min_len = strs[0].length(); for (int i = 0; i < strs.length; i++) { if (strs[i].length() < min_len) { min_len = strs[i].length(); } } for (int i = 0; i < min_len; i++) { char c = strs[0].charAt(i); int flag = 1; for (int j = 1; j < strs.length; j++) { if (c != strs[j].charAt(i)) { flag = 0; break; } } if (flag == 1) sb.append(c); else break; } return sb.toString(); } }

    思路

    寻找字符串最长公共前缀,首先遍历一遍字符串数组,找出最小的字符串长度(最长公共前缀的长度不会超过这个),然后以此长度为循环范围,遍历每个字符串,只有每个字符串都包含相同的该字符,才把该字符加入公共前缀中。

    更多思路可以参考:LeetCode | Solution

    最新回复(0)