2024年Web前端最新poj2217详解 ( 后缀数组 + 高度数组 ),2024年最新Web前端开发实习面试题

react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

这不就与题意很相似了,我们只需要把两个字符串连接在一起就可以了

然后我们比较高度数组的大小即可

需要注意:

  1. 因为比较高度数组时,可能两个相邻的后缀是在同一个字符串中,所以我们需要先判断后缀是从哪开始的

  2. 这时候又会出现另一种情况,可能有个后缀经过了两个字符串,这种情况判断,两个后缀是从不同字符串开始的,无法判断出来,所以我们要在连接两个字符串时,在中间加上一个在字符串中不会出现的字符 ( 例:S = a + ‘\0’ + b )

#include

#include <stdio.h>

#include

#include

using namespace std;

string S;

int sa[20005], rk[20005], tmp[20005], lcp[20005];

int k;

bool cmp(int a, int b)

{

if(rk[a] == rk[b])

{

int i = a + k <= S.length() ? rk[a + k] : -1;

int j = b + k <= S.length() ? rk[b + k] : -1;

return i < j;

}

return rk[a] < rk[b];

}

void construct_sa()

{

for(int i = 0; i <= S.length(); i++)

{

sa[i] = i;

rk[i] = i < S.length() ? S[i]: -1;

}

for(int i = 1; i <= S.length(); i = i * 2)

{

k = i;

sort(sa, sa + S.length() + 1, cmp);

tmp[sa[0]] = 0;

for(int i = 1; i <= S.length(); i++)

{

tmp[sa[i]] = tmp[sa[i-1]] + (cmp(sa[i-1], sa[i]) ? 1 : 0);

}

for(int i = 0; i <= S.length(); i++)

{

rk[i] = tmp[i];

}

}

}

void construct_lcp()

{

int h = 0;

for(int i = 0; i < S.length(); i++)

{

int j = rk[i] - 1;

最后

我可以将最近整理的前端面试题分享出来,其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据结构与算法等等,还在持续整理更新中,希望大家都能找到心仪的工作。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

篇幅有限,仅展示部分截图:

g.csdnimg.cn/img_convert/b24f32dd81ead796fa80c27c763d262c.png)

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值