結果

問題 No.588 空白と回文
ユーザー 👑 obakyanobakyan
提出日時 2019-04-08 14:33:58
言語 Lua
(LuaJit 2.1.1696795921)
結果
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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 AC 1 ms
6,944 KB
testcase_02 AC 1 ms
6,944 KB
testcase_03 AC 533 ms
6,944 KB
testcase_04 AC 1 ms
6,944 KB
testcase_05 AC 2 ms
6,944 KB
testcase_06 AC 2 ms
6,944 KB
testcase_07 AC 1 ms
6,944 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 1 ms
6,944 KB
testcase_11 AC 526 ms
6,940 KB
testcase_12 AC 17 ms
6,940 KB
testcase_13 AC 2 ms
6,940 KB
testcase_14 AC 2 ms
6,944 KB
testcase_15 AC 2 ms
6,940 KB
testcase_16 AC 1 ms
6,944 KB
testcase_17 AC 349 ms
6,948 KB
testcase_18 AC 2 ms
6,944 KB
testcase_19 AC 2 ms
6,944 KB
testcase_20 AC 71 ms
6,940 KB
testcase_21 AC 489 ms
6,940 KB
testcase_22 AC 90 ms
6,940 KB
testcase_23 AC 289 ms
6,944 KB
testcase_24 AC 2 ms
6,944 KB
権限があれば一括ダウンロードができます

ソースコード

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