ARTS Week 7

克隆人
• 阅读 112

Algorithm

本周的算法题为 14. 最长公共前缀

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

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

示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"

实现代码如下:

    if (strs[0] == "") {
        return ""
    }
    if (strs.length == 1) {
        return strs[0]
    }
    for (let i = 0; i < strs.length; i++) {
        for (let j = 0; j < strs.length - i - 1; j++) {
            if (strs[j].length > strs[j + 1].length) {
                let temp = strs[j]
                strs[j] = strs[j + 1]
                strs[j + 1] = temp
            }
        }
    }
    let minStr = strs[0]
    for (let i = 0; i < minStr.length; i++) {
        const minStrValue = minStr[i];
        for (let j = 1; j < strs.length; j++) {
            if (strs[j][i] !== minStrValue) {
                return minStr.substring(0, i)
            }
        }
    }
    return minStr

解题思路:

  1. 总的来说就是,先将字符串数组排序,拿到最短的字符串,通过编辑这个最短的字符串,依次对比其他字符串相同下标的字符,是否相等,拿到出现不相等的下标,然后截取这个最短字符串的前缀即是我们要求的值。
  2. 首先,如果字符串数组是[""],直接返回结果为""
  3. 如果字符串数组只有一个元素,就返回元素自身。
  4. 使用冒泡排序,将字符串数组,长度最短的字符串放在前面,获取最短字符串的值。
  5. 遍历最短字符串,依次对比其他字符串的相同下标的字符,是否相等,如果不相等,就返回存在不相等的下标,比如[ 'flow', 'flower', 'flight' ],通过flow来遍历,然后会在o也就是下标为2时,出现不相等,此时就截取最短字符串的值,minStr.substring(0, i),最长公共前缀。
  6. 题外话,前面的if是在力扣提交解法,反馈之后补上的,有点写测试用例的意思,当时我也在想,能不能有一个完美的解法,但是,仔细一想,直接根据特殊场景,给出直接的结果,虽然会觉得代码有点难看,但结果本身就是提高算法效率的事情,所以就这样了。一开始这道题目没有一点思路的,反复研究,才想到解法。不管解法好坏,当下的目的是解得出来,思路最重要,等积累到一定程度,自己能力有所长进,相信给出的解法一定会越来越优雅。

Review

Stop Telling People Everything. My experience | by Oyinade | Oct, 2023 | Medium

你知道,当人们说不要透露下一步或者自己的计划给别人,不要告诉别人任何事情。在某种程度上,我一直觉得这句话很难理解,因为你不告诉别人你的情况,别人怎么能帮到你呢?我想说的是,没有人天生就是一座孤岛,在你生命的某个时刻,你需要和别人有交集。你需要别人帮助你,指导你,给你指路。

让我用自己来举例子,在三年前,当我还在读大学的时候,我接到了一个很小的项目,我决定测试一下这句话,看看我最后的表现如何,所以我没有告诉任何人关于这个项目。

当然,我对这个项目做了研究,我还上网寻求指导,我很有信心它会成为一个非常棒的项目。

我要展示作品的那一天到来了,当我起身开始展示时,我的很多朋友,甚至我周围的人,都有点震惊地发现,我被交给了这个项目,却没有提起任何事情,因为这是一个相当大的交易。

我能听到有人说,“她为什么不告诉我们”的窃窃私语,但木已成舟,我现在要展示它。当我开始我的演讲时,我没有足够的信心来讲好,我的肢体语言传达了一个完全不同的信息,我匆忙做了所有的事情,一个本应该花45分钟简单而清晰的解释的演讲,在15分钟内就完成了。

讲师们很不高兴,事实上,如果我能把他们脸上的表情用语言表达出来,那就是,我们应该把它交给别人。

在我完成演讲后,我的一个朋友过来问我,你为什么不告诉我们,然后我们就可以帮助你或指导你怎么做了。我一句话也说不出来,因为我认为我做的是对的。但是我的表现和对整个情况的判断低于平均水平,没有给人留下深刻的印象。

说句公道话,我会让别人教我怎么做,我从那次经历中学到了什么呢,那就是,如果你不知道如何做某件事,就向能帮助你的人求助,不要指望自己能做得很好。

“别再向别人透露你的计划了。”

我认为我对这个概念的理解不够好,或者我可能把它用在了错误的情况下。我甚至读过一些关于生活中真正成功人士的书,他们也说了同样的话,但我不明白他们的意思。

我仍然在努力理解这句话的真正含义以及如何应用它。如果你能帮助我更清楚地理解,我将不胜感激,因为最近我一直在经历艰难的挑战,老实说,我需要帮助。

所以我同意这句话吗?不完全是。我觉得如果你的计划需要帮助,你应该去找那些更了解你的人,那些有纯洁意图的人。

Tip

X [ERROR] No known conditions for "./lib/locale/lang/zh-cn" specifier in "element-plus" package [plugin vite:dep-scan]

Vue3项目模版打算部署至Sentry前端监控系统试用,然后就运行项目,因为nodejs版本升级到了v18.18.0,出现一些依赖不兼容的问题,就打算趁这个机会升级至Vite5,然后就遇到了Element Plus组件库国际化问题,研究了一下,是用法上面有了变化导致的,具体可以看这个issue,[[i18n] [All] [plugin:vite:import-analysis] No known conditions for "./lib/locale/lang/zh-cn" specifier in "element-plus" package · Issue #13609 · element-plus/element-plus (github.com)](https://github.com/element-plus/element-plus/issues/13609),方案就是:

// 2.3.7以及之前的用法
import zhCN from "element-plus/lib/locale/lang/zh-cn";
import en from "element-plus/lib/locale/lang/en";

// 2.3.8+
import zhCN from "element-plus/dist/locale/zh-cn.mjs";
import en from "element-plus/dist/locale/en.mjs";

Share

”我今天去种地了,什么地?对你的死心塌地。我今天还钓鱼了,什么鱼?对你的至死不渝。“在B站听的电影解说,现听现抄,被逗笑了,实属蚌埠住了。

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
4年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Stella981 Stella981
4年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
4年前
HDU 2594(求最长公共前后缀 kmp)
题意是在所给的两个字符串中找最长的公共前后缀,即第一个字符串前缀和第二个字符串后缀的最长相等串。思路是将两个字符串拼接在一起,然后直接套用kmp算法即可。要注意用next会报编译错误,改成Next才过……但next确实不是c关键字。代码如下:!(https://oscimg.oschina.net/oscnet/5
Stella981 Stella981
4年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
4年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
4年前
LeetCode 226场周赛题解
❝【GiantPandaCV导语】这是LeetCode第226场周赛题解,本周考察的知识点有枚举,贪心,前缀和,Manacher回文算法,动态规划,图论等。❞比赛链接https://leetcodecn.com/contest/weeklycontest226/最终Rank:23
Stella981 Stella981
4年前
LeetCode:(14. 最长公共前缀!!!!!)
题目:14\.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串“”。示例1:输入:\“flower”,“flow”,“flight”\输出:“fl”示例2:输入:\“dog”,“racecar”,“car”\输出:“”
深度学习 深度学习
7个月前
2024蓝桥杯省赛B组前缀总分(洛谷P12124)解题思路与代码详解
一、题目解读2024年蓝桥杯省B组题目“前缀总分”(对应洛谷P12124)要求计算给定字符串集合中,所有前缀的最长公共前缀(LCP)的总分,并找出通过移动字符位置后可能获得的最大总分。题目考察字符串处理与动态规划能力,需高效计算LCP并优化得分策略。二、解
克隆人
克隆人
Lv1
先做一个浪漫的人就从爱自已开始。
文章
3
粉丝
0
获赞
0