Java教程

剑指OFFER系列之48----最长不含重复字符的子字符串

本文主要是介绍剑指OFFER系列之48----最长不含重复字符的子字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

剑指OFFER

题目描述:请从字符串中找出一个最长的不包含重复字符串的的子字符串,计算该最长子字符串的长度。

#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include<climits>
#include<unordered_map>

using namespace std;

int lengthOfLongestSubString(string& s){
	unordered_map<char, int> window;
	int ans = 0, left = 0, right = 0;
	while(right < s.size()){
		window[s[right]]++;
		right++;
		while(window[s[right]] > 1){
			window[left]--;
			left++;
		}
		ans = max(ans, right - left);
	}
	return ans;
}

void utils(){
	cout << "enter string: ";
	string s;
	cin >> s;
	cout << "longestSize: " << lengthOfLongestSubString(s) << endl;
}

int main(){
	utils();
    return 0;
}


这篇关于剑指OFFER系列之48----最长不含重复字符的子字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!