一、原理

二、实践

2.1、幸运N串

  • 滑动窗口 *
  • @return */ public static int sliding_window(String luckCharN) { if (luckCharN == null || luckCharN.length() == 0) {

    1. return 0;

    } //滑动窗口左右边界 int right = 0; int left = 0; //最长 N字符 int max = 0; //不是 字符N的个数 int notN = 0; char[] chars = luckCharN.toCharArray(); int len = chars.length;

    while (right < len) {

    1. if (chars[right++] != 'N') {
    2. //右边界如果不是 N,记录个数
    3. notN++;
    4. }
    5. //个数超过两个
    6. while (notN > 2) {
    7. //滑动窗口左边界移动
    8. if (chars[left++] != 'N') {
    9. notN--;
    10. }
    11. }
    12. max = Math.max(max, right - left);

    } return max; } ```

参考