結果

問題 No.588 空白と回文
ユーザー 👑 obakyanobakyan
提出日時 2019-04-08 14:33:58
言語 Lua
(LuaJit 2.1.1734355927)
結果
AC  
実行時間 533 ms / 2,000 ms
コード長 652 bytes
コンパイル時間 31 ms
コンパイル使用メモリ 6,692 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-07-01 22:52:07
合計ジャッジ時間 3,478 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

s = io.read()
ss = {}
n = string.len(s)
tall = {}

function getlen(spos, epos)
  len = 0
  while(spos <= epos) do
    if(ss[spos] == ss[epos]) then
      if(spos == epos) then len = len + 1 else len = len + 2 end
    end
    spos, epos = spos + 1, epos - 1
  end
  return len
end

for i = 1, n do
  a = string.sub(s, i, i)
  if(tall[a] == nil) then tall[a] = {} end
  table.insert(tall[a], i)
  ss[i] = a
end
maxlen = 1
for k, v in pairs(tall) do
  if(2 <= #v) then
    for i = 1, #v - 1 do
      spos = v[i]
      for j = i + 1, #v do
        epos = v[j]
        maxlen = math.max(maxlen, getlen(spos, epos))
      end
    end
  end
end
print(maxlen)
0