当前位置:首页 » 《随便一记》 » 正文

✨【Code皮皮虾】通俗易懂,一次遍历 + 双指针怒解【通过删除字母匹配到字典里最长单词】_Code皮皮虾的博客

20 人参与  2021年11月21日 10:03  分类 : 《随便一记》  评论

点击全文阅读


文章目录

    • 😉毛遂自荐
    • 🌝题目
    • 🔥解题思路
    • ✨代码实现
    • 💖最后

Code皮皮虾 一个沙雕而又有趣的憨憨少年,和大多数小伙伴们一样喜欢听歌、游戏,当然除此之外还有写作的兴趣,emm…,日子还很长,让我们一起加油努力叭🌈

话不多说,直达底部有粉丝专享福利!!!


😉毛遂自荐

毛遂自荐一下,给大家推荐一下自己的专栏😁,欢迎小伙伴们收藏关注😊

大厂面试题专栏

Java专栏

爬虫专栏

更多专栏尽在主页,点我😁!!!

在这里插入图片描述


🌝题目

点我 ! 力扣链接
image.png



🔥解题思路

题目要求返回结果——> 如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。

可以得到的信息:1. 返回的字符串长度要长,在长度相等的情况下要字典序最小,2. 返回的字符串是可以通过删除 s 中的某些字符得到。

根据以上信息,可采用模拟法,即遍历 + 双指针

  1. 遍历list,对每一个字符串进行条件判断
  2. 通过双指针判断当前字符串是否可以通过删除 s 中的某些字符得到。


✨代码实现

class Solution {
    public String findLongestWord(String s, List<String> dictionary) {
        
        //双指针
        int left = 0,right = 0;
        //结果字符串
        String res = "";
        int len = dictionary.size();
        int len1 = s.length(),len2 = 0;
        String tmp = "";
        
        //遍历
        for (int i = 0;i < len;i++) {
            left = 0;
            right = 0;
            tmp = dictionary.get(i);
            len2 = tmp.length();
            
            //双指针判断
            while (left < len1 && right < len2) {
                //当前字符相等,指针同时后移
                if (s.charAt(left) == tmp.charAt(right)) {
                    left++;
                    right++;
                }else {
                    //不等则移动左指针
                    left++;
                }
            }

            //如果当前下标索引 == 当前字符串的长度,说明匹配才成功
            if (right == len2) {  
                //第一次,直接赋值
                if ("".equals(res)) {
                    res = tmp;
                    continue;
                }

                //之后,长度优先判断,再才是字典序判断
                if (res.length() < tmp.length()) res = tmp;
                else if(res.length() == tmp.length()) res = res.compareTo(tmp) > 0 ? tmp : res;
            }
        }
        return res;
    }
}

image.png


💖最后

我是 Code皮皮虾,一个热爱分享知识的 皮皮虾爱好者,未来的日子里会不断更新出对大家有益的博文,期待大家的关注!!!

创作不易,如果这篇博文对各位有帮助,希望各位小伙伴可以一键三连哦!,感谢支持,我们下次再见~~~

公众号干货内容输出,囊括Java、Python爬虫、力扣题解、大厂面试题 四大系列,更有长时间总结的干货资源分享,后台回复:面试资料即可领取


最后,祝各位步步高升🚀🚀🚀

                                                   粉丝福利👇🏻👇🏻👇🏻


点击全文阅读


本文链接:http://zhangshiyu.com/post/31115.html

字符串  指针  长度  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1