2024年Java最新LeetCode - 748(1),透彻分析源码

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

image.png

更多笔记分享

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 先上代码,一上来看图解,怕你们不了解。我的图解,需要你们先看一遍程序有个印象。

    • 图解

题目条件

===================================================================

在这里插入图片描述

题目大意:


给你 一个 不规则的字符串(字符串内容是五花八门的数据:ASCII码表知道吗?里面的数据都可能出现)

从该字符串里,提取字母(忽略大小写) 出来 / 或者删除非字母字符

再给你一个数组,这里数组有 几个元素 / 字符串 / 单词,如果 提取出来的字母(忽略大小写) 都在出在一个单词 ,甚至几个单词当中。那么返回那 最短的那个单词

总的来说就是,输入一个 “不规则” 的字符串,从中提取字母数据 ,这些字母数据可能可以构成一个单词,也有可能构造不了单词。

在可以构成单词的情况下,且数组中有这个单词,直接返回。(不用补全)

在不可以构造单词的情况下,且数组这些字母都出现在一个甚至几个单词中,返回最短单词

例1 :字符串 “L” , 数组 {leap“, “lie”},在忽略大小写的情况下,数组中的两个元素都包含 L,这时就 返回最短单词 lie。注意到字符串是一个字符了吗? 返回值 lie 多 i 和 e,这就补全的意思,最短就不用我说了吧?

查找规则:

注意到 黄底部分了吗? 意思是提取的字母 都必须 出现在  一个/ n个  单词当中。

例如:字符串 “Lf” , 数组 {leap“, “life”},此时,虽然字符串 Lf 出现在数组的第二个元素中,但是 f 这个元素不存在数组当中第一个元素中,第二个才是我们要找的。

注意这个规律! 后面要用到。


先上代码,一上来看图解,怕你们不了解。我的图解,需要你们先看一遍程序有个印象。

======================================================================================================


class Solution {

    public String shortestCompletingWord(String licensePlate, String[] words) {

        int[] array1 = new int[26]; // 数组下标对应着字符,下标所对应的值 对应是 字符的个数/ 出现的次数

        for(int i =0;i<licensePlate.length();i++){// 遍历 licensePlate 字符串

            char ch = licensePlate.charAt(i);// 获取 字符串当中字符

            if(Character.isLetter(ch)){// Character 的 isLetter 方法 是判断字符数据 是否是 字母

                // 是,就返回true,否,则返回 false



                array1[Character.toLowerCase(ch) - 'a']++;// 记录 每个字母字符 的 出现次数 / 个数

            }

        }

        int index = -1;// 为 后面 比较最短补全词,做准备

        for(int i = 0; i<words.length;i++){// 获取words中 字符串元素

            int[] array2 = new int[26];//

            for(int j = 0 ;j< words[i].length();j++){// 获取words数组 的 字符串元素 中 字符 

                    char ch = words[i].charAt(j);// 获取 当前字符串中 字母

                    array2[ch-'a']++;// 计算当前 字符串元素中 每个字母的 个数/出现次数

                }





# 总结

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

# 面试题及解析总结

![三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经](https://img-blog.csdnimg.cn/img_convert/d0b72b79c7cb9cdfdbaf5f4a91b7fc7f.webp?x-oss-process=image/format,png)

# 大厂面试场景

![三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经](https://img-blog.csdnimg.cn/img_convert/1b249a0159a9a5da4c6e2c24f83cb1da.webp?x-oss-process=image/format,png)

# 知识点总结

![三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经](https://img-blog.csdnimg.cn/img_convert/35c741794eb2496274414c07e4fcb4de.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LeetCode-Editor是一种在线编码工具,它提供了一个用户友好的界面编写和运行代码。在使用LeetCode-Editor时,有时候会出现乱码的问题。 乱码的原因可能是由于编码格式不兼容或者编码错误导致的。在这种情况下,我们可以尝试以下几种解决方法: 1. 检查文件编码格式:首先,我们可以检查所编辑的文件的编码格式。通常来说,常用的编码格式有UTF-8和ASCII等。我们可以将编码格式更改为正确的格式。在LeetCode-Editor中,可以通过界面设置或编辑器设置来更改编码格式。 2. 使用正确的字符集:如果乱码是由于使用了不同的字符集导致的,我们可以尝试更改使用正确的字符集。常见的字符集如Unicode或者UTF-8等。在LeetCode-Editor中,可以在编辑器中选择正确的字符集。 3. 使用合适的编辑器:有时候,乱码问题可能与LeetCode-Editor自身相关。我们可以尝试使用其他编码工具,如Text Editor、Sublime Text或者IDE,看是否能够解决乱码问题。 4. 查找特殊字符:如果乱码问题只出现在某些特殊字符上,我们可以尝试找到并替换这些字符。通过仔细检查代码,我们可以找到导致乱码的特定字符,并进行修正或替换。 总之,解决LeetCode-Editor乱码问题的方法有很多。根据具体情况,我们可以尝试更改文件编码格式、使用正确的字符集、更换编辑器或者查找并替换特殊字符等方法来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值