結果
問題 | No.852 連続部分文字列 |
ユーザー |
![]() |
提出日時 | 2023-03-12 13:07:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 651 ms / 3,153 ms |
コード長 | 390 bytes |
コンパイル時間 | 249 ms |
コンパイル使用メモリ | 82,336 KB |
実行使用メモリ | 172,780 KB |
最終ジャッジ日時 | 2024-09-18 07:02:22 |
合計ジャッジ時間 | 10,848 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
from bisect import * S = list(input()) N = len(S) D = [[0, N+1] for i in range(26)] for i in range(N): D[ord(S[i]) - ord("a")].append(i + 1) for i in range(26): D[i].sort() ans = 0 for i in range(N): n = ord(S[i]) - ord("a") right = bisect_right(D[n], i+1) left = bisect_left(D[n], i+1)-1 ans += (N+1 - i-1)*(i+1 - D[n][left]) print(ans/(N * (N + 1)//2))