力扣每日精选:3043. 找出最长公共前缀的长度

发布日期:2026-05-21 10:34:33   浏览量 :4
发布日期:2026-05-21 10:34:33  
4

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

将数组 arr1 中所有数字的前缀存储在一个哈希集合中。

以 12345 为例:

12345
1234
123
12
1

我们通过反复除以 10 来获取这些前缀。

然后,对于数组 arr2 中的每个数字,不断从末尾移除数字,并检查该前缀是否存在于集合中。

示例:

1239 → 123 → 找到

因此,公共前缀长度 = 3。

使用 break 是因为更短的前缀(12, 1)长度只会更小。

import java.util.HashSet;

class Solution {
    public int longestCommonPrefix(int[] arr1, int[] arr2) {
        HashSet<Integer> prefixes = new HashSet<>();

        // 步骤 1:将 arr1 中数字的所有可能前缀插入哈希集合
        for (int val : arr1) {
            while (val > 0) {
                prefixes.add(val);
                val /= 10; // 移除最后一位数字以获取下一个前缀
            }
        }

        int maxLength = 0;

        // 步骤 2:对照哈希集合检查 arr2 中数字的所有可能前缀
        for (int val : arr2) {
            while (val > 0) {
                if (prefixes.contains(val)) {
                    // 步骤 3:如果找到,计算其长度并更新最大长度
                    int currentLength = String.valueOf(val).length();
                    maxLength = Math.m

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部