結果
問題 | 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)