B3956 [GESP202403 三級] 字母求和 題解
當時在考試,3分鐘A了,結果第二題T了。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 2;
const int N1 = 1e3 + 2;
typedef long long ll;
typedef unsigned long long ull;
#define fo(i,n,m) for(int i=n;i<=m;i++)
int main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n, cnt = 0;
string a;
cin >> n >> a; // 輸入字串
fo(i, 0, a.length() - 1) // 遍歷字串
if (a[i] >= 'a' && a[i] <= 'z') // 判斷是不是小寫字母
cnt += (a[i] - 'a' + 1); // 算出來他是26個字母的第幾個
else // 否則就只有大寫字元了,題目裡寫了只有大寫和小寫字母
cnt += (int) - a[i]; // 按照題意,刪掉ASCII碼值。
cout << cnt;
return 0;
}