2024.6.18
**每日一题**
2288.价格减免,这是一道纯字符串的题目,我们的目标是识别出字符串中的价格并将它替换为折扣后的数字。这道题利用了一些字符串的关键字:
stringstream 是C++标准库中的一个类,属于 <sstream> 头文件。它提供了一种方式来处理字符串,就像使用流一样,可以轻松地将数据读入或写出到字符串。
#include <sstream>stringstream ss; // 创建 stringstream 对象ss << "Some data"; // 向 stringstream 对象写入数据string data;ss >> data; // 从 stringstream 对象读取数据
all_of 是C++算法库中的一个函数,位于 <algorithm> 头文件。它用于检查给定范围内的所有元素是否都满足特定的条件。
#include <algorithm>string s = "12345";if (all_of(s.begin() + 1, s.end(), ::isdigit)) {// 从 s.begin() + 1 开始到 s.end() 所有的元素都满足 ::isdigit 条件}
fixed:指定浮点数应该以固定的小数点格式输出。
setprecision(2):设置小数点后保留两位数字。
stoll(w.substr(1)):将字符串 w 去掉第一个字符后的剩余部分转换为长长整型(long long)
219.存在重复元素,这道题的本质上是滑动窗口的模板题,我刚开始的想法是遍历数组再同时向前遍历k个元素来判断,此时时间复杂度为N*K,为了降低,应使用set结构。
set的基本语法:
unordered_set<int> s 定义初始化s.emplace(nums[i]) :插入元素s.erase(nums[i - k - 1]) : 删除元素s.count(nums[i]) :判断s中是否已经存在该元素