LeetCode Weekly Contest 149 3問目 - Swap For Longest Repeated Character Substring [1156]

Source

LeetCode Weekly Contest 149
問題文

問題概要

省略

解法

省略

cLayversion 20190818-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

class Solution {
public:
  int maxRepOpt1(string S) {
    int i, j, k, N, res = 0;
    int cnt[26] = {};
    Grid1d<int> g;

    N = S.size();
    rep(i,N) S[i] -= 'a';
    rep(i,N) cnt[S[i]]++;

    g.malloc(N);
    rep(i,N) g[i] = S[i];
    g.setDir();

    rep(i,N){
      j = i - g.dw[i];
      k = g.dw[i];
      if(j>=0){
        k++;
        j--;
        if(j>=0 && g[i]==g[j]) k += g.dw[j];
      }
      res >?= min(k, cnt[g[i]]);

      j = i + g.up[i];
      k = g.up[i];
      if(j<N){
        k++;
        j++;
        if(j<N && g[i]==g[j]) k += g.up[j];
      }
      res >?= min(k, cnt[g[i]]);
    }

    g.free();
    return res;
  }
};

Current time: 2024年04月19日21時33分34秒
Last modified: 2019年08月18日05時23分14秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: