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;

      }

  • 相关阅读:
    hive默认配置 .hiverc
    hive 行列转换
    hive 全表全字段对比
    shell 获取hive表结构
    粘包现象与解决方案
    win 关闭正在使用的端口
    pycharm格式报错: Remove redundant parentheses
    博客系统作业
    django中间件
    django的用户认证组件
  • 原文地址:https://www.cnblogs.com/JaneSJ/p/5910622.html
Copyright © 2011-2022 走看看