2014校招Yahoo笔试的最后一题回顾分析

本文探讨了Yahoo笔试题中关于网络基础知识和字符串相匹配的问题。具体包括TCP传输过程中发送方为何不需要关心ACK消息,以及如何解决字符串相匹配的计算问题。通过分析启发点,提出了一种求解字符串相匹配数量的方法,并讨论了动态规划的解决方案。同时,作者反思了个人的学习效率和时间管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,Yahoo:yahoo的题目我觉得其实挺好的,难度适中

有道网络基础题目,我其实这次校招没怎么准备网络这块的基础知识和数据库的,所以这类的题目我都只能略过了,或者凭着以前的记忆去推测,其实楼主自认为学习能力还不错,但是一旦不用,那就是长期记忆力为最低档的节奏了。

问的是TCP传输的过程中,为什么发送方不需要Care收没收到ACK的消息。

这里重点提的是yahoo笔试题目的最后一题,面试的时候面试官还特地问我有没有回去继续想。。。我回去继续想的是那道网络题,然后又是各种校招信息,没时间顾及。。。

最后一题大概是这样的,假设字符串相似的前提条件是:A,B两个字符串各自删掉一个字符后,如果相等,则判定为相似的,这个判定比较简单,就不再赘述了。

题目问题是,一个字符串的子串中,有多少个是相似的呢?

这里有1个启发点吧:

俩个字符串相似,则代表着这里头的相对应位置的子串都是相似的如 adg和abd,bcaed和caked等等。

adgbcaed

adbcaked

所以从这一步便可以过滤掉很多子串相比。

我自己大概的思路是先求出一个字符串的集合,求出他们的每一对。拥有相同字符串对的集合记上其个数,每次记为相似时则加上其个数,并从字符串对列表中删除。

然后从最长子串开始往下递归来判断是否是相似,也判断记录表中,他俩还非相似子串。

如果是相似,如果子串在集合中,则将相对应位置的子串进行处理

以此循环。

abcema_b,a_c,a_e,a_m,b_c,b_e,b_m,c_e,c_m,e_m)

              (ab_bc,ab_ce,ab_em,bc_ce,bc_em,ce_em)

               (abc_bce,abc_cem,bce_cem)

                (abce_bcem)


(乱想:)如果不相似,得删除k(假定为2)字符,n >2

oacdefg

acdfmgn

其实这里分段,可以知道:oacd和acdf是相似的,也就是在k和m之间相差一定数量时其实有相似字符可以抽离出来,也有些非相似字符可以直接pass。。


还有种动态规划,

从小到大,对相同length对的子串进行匹配:

如果length-1的子串相似,且length位置的不相等,则非

如果length-1的子串相似,且length位置相等,则相等

如果length-1的子串是相等的,则相似

但是下例就不能成功的

dabce

abcoe

So,有谁有其他方法末,脑袋最近都不好使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值