您的位置:首页 > 科技 > 能源 > 日本人性剧情片电影_html网页设计代码例子_网站快速刷排名工具_杭州百度代理公司

日本人性剧情片电影_html网页设计代码例子_网站快速刷排名工具_杭州百度代理公司

2025/4/30 18:15:25 来源:https://blog.csdn.net/Wendy_robot/article/details/147515632  浏览:    关键词:日本人性剧情片电影_html网页设计代码例子_网站快速刷排名工具_杭州百度代理公司
日本人性剧情片电影_html网页设计代码例子_网站快速刷排名工具_杭州百度代理公司

题目要求

给定一个字符串 s,找出其中不含有重复字符的最长子串的长度。

子字符串是字符串中连续非空字符序列。

示例 1

输入:s = "abcabcbb"
输出:3
解释:无重复字符的最长子串是 "abc",长度为 3

示例 2

输入:s = "bbbbb"
输出:1
解释:无重复字符的最长子串是 "b",长度为 1

示例 3

输入:s = "pwwkew"
输出:3
解释:无重复字符的最长子串是 "wke",长度为 3。请注意,答案必须是子串的长度,"pwke" 是一个子序列,不是子串。

提示

  • 0 <= s.length <= 5 * 10^4
  • s 由英文字母、数字、符号和空格组成

实际应用

文本编辑器中的应用

在文本编辑器中,用户输入文本时,编辑器需要实时检测是否有重复字符,以帮助用户避免输入错误。

数据流分析中的应用

在网络数据流分析中,需要实时检测数据流中的重复数据包,进行数据清洗和去重。

滑动窗口法

使用滑动窗口算法结合哈希表或数组来高效地记录和更新字符的位置,从而快速判断是否出现重复字符。

哈希表记录字符频率

#include <iostream>
#include <unordered_map>
#include <string>using namespace std;int lengthOfLongestSubstring(string s) {unordered_map<char, int> map;int left = 0, right = 0, res = 0;while (right < s.size()) {// 如果当前字符在map中存在,则更新left指针if (map.find(s[right]) != map.end()) {left = max(left, map[s[right]] + 1);}// 更新当前字符的索引map[s[right]] = right;right++;res = max(res, right - left);}return res;
}int main() {string s = "abcabcbb";cout << lengthOfLongestSubstring(s) << endl;return 0;
}

数组记录字符频率

#include <iostream>
#include <vector>
#include <string>using namespace std;int lengthOfLongestSubstring(string s) {vector<int> map(256, -1);int left = 0, right = 0, res = 0;while (right < s.size()) {// 如果字符重复,更新左边界if (map[s[right]] != -1) {left = max(left, map[s[right]] + 1);}// 更新字符的位置map[s[right]] = right;right++;res = max(res, right - left);    }return res;
}int main() {string s = "abcabcbb";cout << lengthOfLongestSubstring(s) << endl;return 0;
}

推荐一下

https://github.com/0voice

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com