g384 - 數秘術
題目描述
題目要求計算一個由大寫字母組成的單字的總和,其中 A 代表 1,B 代表 2,以此類推,直到 Z 代表 26。
解題思路
這題的解題思路非常簡單,只需要遍歷輸入的字串,將每個字元轉換為對應的數字,然後將這些數字加總即可。由於輸入的字串只包含大寫字母,因此可以直接使用字元的 ASCII 碼進行計算。具體來說,'A' 的 ASCII 碼是 65,因此 s[i] - 'A' + 1 可以得到字元 s[i] 對應的數字。
複雜度分析
- 時間複雜度: O(n),其中 n 是字串的長度。因為需要遍歷字串一次。
- 空間複雜度: O(1),因為只使用了常數級別的額外空間。
程式碼
#include <bits/stdc++.h>
using namespace std;
int ans;
string s;
int main(){
cin >> s;
for(int i=0;i<s.size();++i){
ans+=s[i]-'A'+1;
}
cout << ans;
}