智能pos机长度,002 无重复最长子串长度

 新闻资讯2  |   2023-05-30 09:32  |  投稿人:pos机之家

网上有很多关于智能pos机长度,002 无重复最长子串长度的知识,也有很多人为大家解答关于智能pos机长度的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、智能pos机长度

智能pos机长度

首先,老原则,先直接上代码。

//// Created by tannzh on 2020/6/11.///*给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。  请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 */#include <iostream>#include <string>#include <unordered_map>#include <algorithm>using namespace std;class Solution {public: int lengthOfLongestSubstring(string s) { size_t region = 0, start = 0; unordered_map<char, size_t> trace; for(size_t i = 0; i < s.size(); ++i){ auto found = trace.find(s[i]); if(found != trace.end() && found->second >= start) { region = std::max(region, i - start); start = found->second + 1; } trace[s[i]] = i; } return std::max(region, s.size() - start); }};int main(int argc, char **argv){ Solution s; std::string testStr1 = "abcabcbb"; std::string testStr2 = "bbbbb"; std::string testStr3 = "pwwkew"; std::cout << testStr1 << ", lengthOfLongestSubstring: " << s.lengthOfLongestSubstring(testStr1) << std::endl; std::cout << testStr2 << ", lengthOfLongestSubstring: " << s.lengthOfLongestSubstring(testStr2) << std::endl; std::cout << testStr3 << ", lengthOfLongestSubstring: " << s.lengthOfLongestSubstring(testStr3) << std::endl; return 0;}解题思路

首先,求的只是长度,那么一定有一个 trace 来边记录边比较(max)。

其次,没有重复字符几乎是唯一条件,那么检查重复显然用 k-v mapping.

最后,要考虑一次迭代过程中,如何度量这个长度。

设 substr 的起点为 start(s), 终点为 last(l). 每一次迭代,记录一张索引表。

上图所示,last 指向 `a`, 查询当前表可知,`a` 的位置记录在案,且 `pos >= start`. 故此刻诞生一个 substr. 长度为 `last - start`. s 更新位置为 `pos + 1`.有:

auto found = cache.find(s[last]);if (found != cache.end() && found->second >= start) { region = max(region, last - start); start = found->second + 1;}cache[s[last]] = last;

注意最终还需要比较一次,返回 max(ret, s.size() - start)

以上就是关于智能pos机长度,002 无重复最长子串长度的知识,后面我们会继续为大家整理关于智能pos机长度的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/newsone/60209.html

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。