Longest Substring - 最长子字符串
Substring 指的是字符连续的子字符串。Subsequence 则不要求字符连续。
遍历所有的子字符串
void all_substr(const char *text, int n){
for(int i=0; i<n; i++){
const char *substr_start = text + start;
for(int j=i; j<n; j++){
int substr_size = j - i + 1;
check_substr(substr_start, substr_size);
}
}
}
Longest Substring Without Repeating Characters
要点在于如何优化函数 check_substr()
- 判断字符重复只需要判断最后一个字符
- 发现重复时可以直接跳过所有前缀字符