c++ 11 vs 98
在求最长子字符串中题中要遍历个上万字符数据
1.使用c++11代码
1 2 3 4 5 | for ( auto ch : s) { auto ss = vsi[ch]; vsi[ch].insert(i); i++; } |
2.使用c++98代码
1 2 3 4 | for ( int i = 0; i < s.length(); i++) { ch = s[i]; vsi[ch].insert(i); } |
这两段代码时间比较
1.c++ 11
2.c++ 98
下面是longest-substring-without-repeating-characters AC代码
int lengthOfLongestSubstring(string s) { if (s.length() <= 1) return s.length(); vector<set<int> > vsi(256); char ch; for (int i = 0; i < s.length(); i++) { ch = s[i]; vsi[ch].insert(i); } int count = 0; int max = 0; for (int i = 0; i < s.size() - 1; i++) { count = 0; int endPos = -1; for (int j = i; j < s.size(); j++) { if ((endPos != -1 && j >= endPos)) { break; } auto pos1 = vsi[s[j]].find(j); pos1++; count++; if (pos1 != vsi[s[j]].end()) { int tmp = (*pos1) - i; if (tmp <= max) break; if (endPos > (*pos1) || endPos == -1) { endPos = (*pos1); } } } if (max < count) { max = count; } } return max; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效