当前位置: 首页 > news >正文

笔试——Day12

文章目录

  • 第一题
    • 题目
    • 思路
    • 代码
  • 第二题
    • 题目:
    • 思路
    • 代码
  • 第三题
    • 题目:
    • 思路
    • 代码

第一题

题目

删除公共字符
在这里插入图片描述

思路

模拟:
遇到需要删除的字符,则不添加到结果中

代码

在这里插入图片描述

第二题

题目:

两个链表的第一个公共结点

在这里插入图片描述

思路

模拟:

  • 先计算两个链表的长度
  • 再让长的先走差值步
  • 最后同时走,走到结束,如果没有相遇则为空

代码

在这里插入图片描述

第三题

题目:

mari和shiny

在这里插入图片描述

思路

动态规划——多状态的线性 dp
状态表示:

  • s[i]表示:字符串[0, i]中,有多少个s
  • h[i]表示:字符串[0, i]中,有多少个sh
  • y[i]表示:字符串[0, i]中,有多少个shy

状态转移方程:
s[i]

  • str[i] == 's's[i - 1] + 1
  • str[i] != 's's[i - 1]

h[i]

  • str[i] == 'h's[i - 1] + h[i - 1]
  • str[i] != 'h'h[i - 1]

y[i]

  • str[i] == 'y'h[i - 1] + y[i - 1]
  • str[i] != 'y'y[i - 1]

结果返回:y[n - 1]

优化
我们发现只有当当前字符为有效时(即shy),才会相加,否则等于之前的值;

  • s:当前 's'的数量
  • h:当前 'sh' 子序列的数量
  • y:当前 'shy' 子序列的数量

代码

在这里插入图片描述

http://www.xdnf.cn/news/1145449.html

相关文章:

  • Java Map 集合详解:从基础语法到实战应用,彻底掌握键值对数据结构
  • 爬虫小知识(二)网页进行交互
  • 持续同调文章阅读(四)
  • 二刷 黑马点评 附近商户
  • Diffusion-VLA 中的 Reasoning Token 注入机制解析:语言推理如何控制扩散模型?
  • 深入解析文本分类技术全景:从特征提取到深度学习架构
  • Python 之地址编码识别
  • 《Web安全之深度学习实战》读书笔记总结
  • 去中心化交易所(DEX)深度解析:解码行业头部项目
  • 堆的实现,堆排序,咕咕咕
  • 【RK3576】【Android14】开发板概述
  • Node.js链接MySql
  • 数据结构-3(双向链表、循环链表、栈、队列)
  • 进阶数据结构:红黑树
  • uniapp 动态控制横屏(APP 端)
  • spring boot 实战之分布式锁
  • linux 的list_for_each_entry
  • 数字化转型:概念性名词浅谈(第三十一讲)
  • 怎么判断一个对象是不是vue的实例
  • STM32-CAN
  • 根据用户id自动切换表查询
  • STM32 RTOS 开发基础:从任务管理到同步机制的全面解析
  • Git 团队协作完全指南:从基础到高级应用
  • Docker面试题
  • 饿了么app 抓包 hook
  • HTTP 性能优化:五条建议
  • 控制鼠标和键盘
  • uniapp微信小程序 实现swiper与按钮实现上下联动
  • SymAgent(神经符号自学习Agent)
  • 光伏财务管理:在阳光与资本的精密计算中前行