最長不重複子串

int theLongestSubstring(const string& str) {
	vector<bool> visited(128, false); // 英文字符, hashTable
	int ret = 0,
	    head = 0,
	    tail = 0;
	for (; head < str.size();) {
		if (visited[str[head]]) {
			ret = max(ret, head - tail);
			while (visited[str[head]])
				visited[str[tail++]] = false;
		}
		else
			visited[str[head++]] = true;
	}
	ret = max(ret, head - tail); // 這一步容易忘記
	return ret;
}

發佈了88 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章