E题超详解:帮哈基鱼算标签by woodfish
孩子们,需要承认这题有点小难,难度可能在信息差上,因为可能你们没学到对应知识点,出题人谢罪了orz
给定一段“简化 HTML”字符串,保证:
标签名仅含小写字母、数字;
只有成对出现的普通标签,无自闭合标签;
标签嵌套完全合法,不会出现闭合顺序错误。
要求统计每种标签名的出现次数。注意:
一次“出现”指一对开始标签 <tag> 和结束标签 </tag> 合起来算一次;
结果按标签名字典序(ASCII 序)输出,格式为 标签名=次数。
本题主要考察map和string
接下来一步一步来,把这道题涉及的核心知识点拆成三块讲清楚
map 的键值对特性 & 自动字典序std::map<Key, T> 是 C++ STL 里的有序关联容器,底层是一颗红黑树。
每个节点存 std::pair<const Key, T>,也就是常说的“键值对”。
键唯一:同一个 Key 只能出现一次,重复插入等价于更新。
自动排序:所有键按 < 定义的严格弱序排列。对 字符串str ...
Codeforces 1822C - Monocarp’s String给定一个仅由字符 a 和 b 组成的字符串 s,长度为 n。可以删除一段连续的子串(可以为空),使得剩余字符串中 a 的数量等于 b 的数量。求最少需要删除的字符个数;如果只能把整个字符串全部删掉才能平衡,输出 -1。
前缀+哈希求最短字段
转化问题:权和模型将字符 a 视为 +1,字符 b 视为 -1,可以得到这个字符串的权和 $sum$ = $cnta$ - $cntb$
例如bbbba就是-1 -1 -1 -1 1 ,得到权和为 -3
题目的题意:$a的数量$ 需要等于 $b的数量$ ,题意也就可以转化为 删除一段连续的子串后最终字符串的权和为 $0$
我们定义前缀和数组pre
123456pre[0] = 0;for(int i=1;i<n;i++){ pre[i] = pre[i-1]; if(s[i] == 'a') pre[i]++; else if(s[i] == 'b')pre[i]--;}
删除子串 s[l…r] ...
AJAX基础入门教程核心概念什么是AJAX?AJAX就像是餐厅的”传菜员”,专门负责厨房(服务器)和餐桌(你的网页)之间的沟通。想象一下,如果没有传菜员,每次点菜都要你亲自跑到厨房去告诉厨师,然后等菜做好再端回来——这就是传统的网页刷新方式。
而有了AJAX这个”传菜员”,你只需要告诉它你要什么,它就会悄悄地去厨房告诉厨师,然后把做好的菜端给你,整个过程你都不用离开餐桌(页面不会刷新)。
专业解释:AJAX(Asynchronous JavaScript And XML)是一种在无需重新加载整个网页的情况下,能够与服务器交换数据并更新部分网页内容的技术。
为什么需要AJAX?
提升用户体验:就像微信聊天一样,发送消息后不需要刷新整个聊天界面
节省流量:只获取需要的数据,而不是整个页面
实时交互:可以像股票行情一样实时更新数据
AJAX的工作原理AJAX的工作流程就像这样:
1用户操作 → JavaScript发起请求 → 服务器处理 → 返回数据 → JavaScript更新页面
用法详解使用axios库(推荐方式)axios就像是一把”瑞士军刀”,是专门用来处理AJAX请求的工具 ...
Day04_AJAX进阶 - 企业级异步编程大师课 🏆🎬 开场故事:小王的架构师之路小王在企业工作3年后,遇到了职业发展的瓶颈:
主管:”小王,我们系统的异步逻辑太混乱了,经常出bug,需要你优化一下!”
小王:”我用的是Promise,但代码还是很复杂…”
架构师:”你需要掌握企业级异步编程:async/await、事件循环、并发控制!”
今天,我们将和小王一起,掌握企业级异步编程的核心技能! 💪
🎯 本节课你将学到什么?🏢 企业级异步编程技能(大厂必备)
技能模块
企业价值
技术深度
面试频率
薪资影响
同步/异步
代码逻辑基础
⭐
⭐⭐⭐
+10%
Promise链式
回调地狱解决方案
⭐⭐⭐
⭐⭐⭐⭐⭐
+30%
async/await
异步代码优雅化
⭐⭐
⭐⭐⭐⭐⭐
+40%
事件循环
JS执行机制核心
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
+50%
并发控制
性能优化必备
⭐⭐
⭐⭐⭐⭐
+35%
🚀 职业晋升路径
✅ 初级工程师:会用async/await写异步代码
✅ 中级工程师:理解事件循环,能 ...
Day03_AJAX原理 - 从司机到工程师的蜕变 🚗⚙️🎬 开场故事:老司机的困惑**小张是一名优秀的前端”司机”**,他已经能熟练地使用axios在各个”路段”上驰骋:
1234// 小张的日常:开车很熟练,但不懂发动机原理axios.get('/api/data').then(res => { console.log('到站了!', res.data);});
一天,小张遇到了几个问题:
🚨 车抛锚了:请求失败,但不知道哪里出了问题
🔧 想改装车:需要自定义请求功能,但axios做不到
💡 想当工程师:面试被问到”axios底层原理是什么?”
这时,小张意识到:只会”开车”不够,还要懂”发动机原理”!
🎯 本节课你将学到什么?🏆 学习目标:从司机到工程师的进阶
学习阶段
掌握技能
职业价值
薪资影响
🚗 司机级
熟练使用axios
基础开发
+0%
🔧 修理工级
理解XHR+Promise原理
问题排查
+20%
⚙️ 工程师级
能封装自己的AJAX库
技术创新
+ ...
Day02_AJAX综合案例 - 4个项目练会CRUD 🚀🎬 开场:小王的升职记小王成功掌握了AJAX基础,但领导又提出了新要求:
“小王啊,咱们要做几个实际项目:图书管理系统、图片上传功能、网站换肤、个人信息设置…”
小王心里暗喜:”这正是我学习AJAX后想挑战的!” 💪
今天,我们将和小王一起,完成4个真实的企业级项目!
🎯 本节课你将学到什么?🏢 企业级项目经验(可直接写进简历)
项目编号
项目名称
企业级功能
技术栈
面试价值
Project-01
📚 图书管理系统
完整CRUD+权限管理
Bootstrap5+AJAX
⭐⭐⭐⭐⭐ 必问
Project-02
🖼️ 图片上传系统
文件处理+进度显示
FormData+AJAX
⭐⭐⭐⭐ 高频
Project-03
🎨 智能换肤系统
用户偏好+本地存储
localStorage+AJAX
⭐⭐⭐ 亮点
Project-04
👤 企业个人中心
综合用户系统
全栈技术整合
⭐⭐⭐⭐⭐ 压轴
💡 职业发展:完成这4个项目 = 1年实际工作经验(面试官认可)
🏆 学习成 ...
Day01_AJAX入门 - 从0到1掌握前后端通信 🚀🎬 开场故事:小王的烦恼小王是个前端新手,他做了个体温登记表单,但发现一个问题:
每次提交数据都要刷新整个页面,用户体验特别差!
领导说:”小王啊,能不能像 Gmail 那样,提交数据不刷新页面?”
小王陷入了沉思… 🤔
这时,AJAX 如同救星般出现了!
🎯 本节课你将学到什么?
学习阶段
具体技能
成就感等级
阶段1
理解AJAX概念和作用
⭐⭐
阶段2
发送第一个AJAX请求
⭐⭐⭐
阶段3
获取并展示服务器数据
⭐⭐⭐⭐
阶段4
完成省份查询小项目
⭐⭐⭐⭐⭐
💡 学习承诺:跟着本教程,2小时内你就能独立完成一个AJAX应用!
第一章:AJAX概念 - 小王的解决方案 💡🎯 1.1 小王的探索之旅小王开始研究**”不刷新页面提交数据”**的方法,他发现:
传统网页的问题(小王原来的做法)123用户填写表单 → 点击提交 → 浏览器刷新整个页面 → 显示结果 ↑ ↓ 页面白屏等待 ...
理清 prototype 和 __proto__ 的关系先看一个比喻:「图纸」和「产品」
prototype(原型对象) = 工厂里的「图纸」图纸上规定了所有产品共有的特性(比如手机图纸规定所有手机都有屏幕、按键)。
__proto__ = 每个产品身上的「溯源码」扫一下就能找到它是根据哪张图纸造出来的(通过这个码能找到对应的 prototype)。
具体到 JavaScript 中:假设我们要造一批「人」(对象),步骤如下:
1. 先画图纸(定义构造函数 + prototype)12345678910// 构造函数 = 生产线(用来造对象的工具)function Person(name) { this.name = name; // 每个实例独有的属性(比如每个人名字不同)}// 图纸(prototype):所有实例共享的特性Person.prototype.sayHi = function() { console.log(`我叫${this.name}`); // 所有人都会打招呼};Person ...














