---
# System prepended metadata

title: hello world

---


``` python
def length_of_longest_substring(s: str) -> int:
    # 使用字典来记录字符和它们的最新位置
    char_map = {}
    # 初始化最长长度和窗口的起始位置
    max_len = 0
    start = 0
    
    for end in range(len(s)):
        # 如果字符在字典中，且它的位置在窗口的起始位置或之后，则更新窗口起始位置
        if s[end] in char_map and char_map[s[end]] >= start:
            start = char_map[s[end]] + 1
        # 更新字符的最新位置
        char_map[s[end]] = end
        # 更新最长长度
        max_len = max(max_len, end - start + 1)
    
    return max_len

# 示例用法
string = "abcabcabc"
print(length_of_longest_substring(string))
```