結果
| 問題 |
No.599 回文かい
|
| コンテスト | |
| ユーザー |
wajima_wataru
|
| 提出日時 | 2017-11-25 00:16:13 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 646 bytes |
| コンパイル時間 | 130 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 31,488 KB |
| 最終ジャッジ日時 | 2024-11-27 08:45:10 |
| 合計ジャッジ時間 | 9,075 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 TLE * 1 |
ソースコード
import sys
sys.setrecursionlimit(10000)
S = input()
num = 1
nums = {}
def get_n(s):
global num
if s and s.count(s[0]) == len(s):
num += 2 ** (len(s) // 2) - 1
nums[s] = 2 ** (len(s) // 2) - 1
return
if nums.get(s):
num += nums[s]
return
start_num = num
for idx in range(len(s)):
if len(s) <= 1 or idx + 1 > len(s) // 2:
nums[s] = num - start_num
return
if s[idx] == s[len(s) - 1]:
if s[:idx + 1] == s[len(s) - idx - 1:]:
num += 1
get_n(s[idx + 1:len(s) - idx - 1])
get_n(S)
print(num % 1000000007)
wajima_wataru