結果
問題 | No.852 連続部分文字列 |
ユーザー |
|
提出日時 | 2019-10-30 10:44:24 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 851 ms / 3,153 ms |
コード長 | 393 bytes |
コンパイル時間 | 102 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 54,628 KB |
最終ジャッジ日時 | 2024-09-14 21:45:46 |
合計ジャッジ時間 | 11,917 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
from collections import defaultdict S = input() N = len(S) M = N * (N + 1) // 2 indexes = defaultdict(lambda : [0]) for i, s in enumerate(S, start=1): indexes[s].append(i) ans = 0 for s, index in indexes.items(): index.append(N + 1) cnt = 0 for left, right in zip(index, index[1:]): cnt += (right - left - 1) * (right - left) // 2 ans += M - cnt print(ans / M)