#include <bits/stdc++.h>
using namespace std;
long long Pw(long long int b, long long int p) {
  if (!p) return 1;
  long long int sq = Pw(b, p / 2);
  sq *= sq;
  if (p % 2) sq *= b;
  return sq;
}
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long sd(long long x) { return x < 10 ? x : x % 10 + sd(x / 10); }
long long lcm(long long a, long long b) { return ((a * b) / gcd(a, b)); }
vector<long long> get_divisors(long long n) {
  vector<long long> arr;
  long long i = 1;
  for (i; i * i <= n; i++) {
    if (n % i == 0) {
      arr.push_back(i);
      if (i * i != n) arr.push_back(n / i);
    }
  }
  return arr;
}
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
int p[200500];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  map<pair<char, long long>, long long> mp;
  long long sum = 0, c = 0;
  int arr[26];
  string s;
  for (long long i = 0; i < 26; i++) cin >> arr[i];
  cin >> s;
  for (long long i = 0; i < s.size(); i++) {
    c += mp[{s[i], sum}];
    sum += arr[s[i] - 'a'];
    mp[{s[i], sum}]++;
  }
  cout << c;
  return 0;
}
