結果

問題 No.588 空白と回文
ユーザー 👑 obakyanobakyan
提出日時 2019-04-08 14:33:58
言語 Lua
(LuaJit 2.1.1696795921)
結果
AC  
実行時間 536 ms / 2,000 ms
コード長 652 bytes
コンパイル時間 46 ms
コンパイル使用メモリ 5,216 KB
実行使用メモリ 4,384 KB
最終ジャッジ日時 2023-09-14 15:41:34
合計ジャッジ時間 3,805 ms
ジャッジサーバーID
(参考情報)
judge11 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 1 ms
4,380 KB
testcase_02 AC 1 ms
4,376 KB
testcase_03 AC 536 ms
4,376 KB
testcase_04 AC 1 ms
4,376 KB
testcase_05 AC 1 ms
4,380 KB
testcase_06 AC 2 ms
4,380 KB
testcase_07 AC 1 ms
4,376 KB
testcase_08 AC 1 ms
4,376 KB
testcase_09 AC 1 ms
4,376 KB
testcase_10 AC 1 ms
4,376 KB
testcase_11 AC 528 ms
4,376 KB
testcase_12 AC 16 ms
4,380 KB
testcase_13 AC 1 ms
4,380 KB
testcase_14 AC 1 ms
4,380 KB
testcase_15 AC 1 ms
4,380 KB
testcase_16 AC 1 ms
4,376 KB
testcase_17 AC 315 ms
4,376 KB
testcase_18 AC 2 ms
4,380 KB
testcase_19 AC 1 ms
4,376 KB
testcase_20 AC 65 ms
4,376 KB
testcase_21 AC 453 ms
4,384 KB
testcase_22 AC 83 ms
4,380 KB
testcase_23 AC 280 ms
4,380 KB
testcase_24 AC 1 ms
4,380 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