labuladong

    1. /* 滑动窗口算法框架 */
    2. void slidingWindow(string s, string t) {
    3. unordered_map<char, int> need, window;
    4. for (char c : t) need[c]++;
    5. int left = 0, right = 0;
    6. int valid = 0;
    7. while (right < s.size()) {
    8. // c 是将移入窗口的字符
    9. char c = s[right];
    10. // 右移窗口
    11. right++;
    12. // 进行窗口内数据的一系列更新
    13. ...
    14. /*** debug 输出的位置 ***/
    15. printf("window: [%d, %d)\n", left, right);
    16. /********************/
    17. // 判断左侧窗口是否要收缩
    18. while (window needs shrink) {
    19. // d 是将移出窗口的字符
    20. char d = s[left];
    21. // 左移窗口
    22. left++;
    23. // 进行窗口内数据的一系列更新
    24. ...
    25. }
    26. }
    27. }