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()

  1. 判断字符重复只需要判断最后一个字符
  2. 发现重复时可以直接跳过所有前缀字符