zoukankan      html  css  js  c++  java
  • 4 rad数组

      public static int [] rad(String str){

        StringBuilder newStr= new StringBuilder();

        newStr.append('#');

        for(int i=0;i<str.length();i++){

          newStr.append(str.charAt(i));

          newStr.append('#');  
        }

        int [] rad = new int[newStr.length()];

        int rightPoint = -1;

        int symmetry = -1;

        for (int cur = 0; cur < newStr.length(); cur ++) {

          int r = 1;

          if (cur <= rightPoint)

            r = Math.min(rad[symmetry]+(symmetry-cur),rad[2*symmetry-cur]);

          while (cur - r >= 0 && cur + r < newStr.length() && newStr.charAt(cur - r) == newStr.charAt(cur + r))

            r++;

          if(cur + r - 1> rightPoint){

            rightPoint = cur + r - 1;
                       symmetry = cur;

          }

          rad[cur] = r;

        }

        return rad;

      }

  • 相关阅读:
    noip退役赛
    noip模拟赛
    集合划分状压dp
    bzoj 3730 震波
    noip前打板子 qwq
    noip模拟赛
    HAOI2015 树上染色
    一个菜鸡出的模拟赛!
    ioinc
    centos=>gsutil,iptables
  • 原文地址:https://www.cnblogs.com/JaneSJ/p/5910622.html
Copyright © 2011-2022 走看看