s = list(input()) len_s = len(s) # DP # dp[アルファベット文字][i個目まで] = 出現個数 dp = [[0 for j in range(len_s + 1)] for i in range(26)] ans = 0 # 1文字ずつ見る for i in range(len_s): # 今の文字を取得 pos = ord(s[i]) - ord('A') dp[pos][i+1] += 1 # A~Zをチェック for j in range(26): # 累積和をとるためコピー if i > 0: dp[j][i+1] += dp[j][i] # 作れる総数を更新(同じ文字でないこと) if pos != j: ans += ((dp[j][i+1]) * (dp[j][i+1]-1) // 2) print(ans)