解法一
🔹 數字母
為了讓一個字串經過排序後能形成回文
各字元的個數必須是偶數才能左右對稱
一個例外是中心的字元,他可以是奇數的
e.g.
ABCDCBA
: D 的個數是奇數
ABCBCBA
: B 的個數是奇數
因此
當一個字串擁有 不超過一個 個數為奇數的字母 時
可以經過排序形成回文
✅ 完整代碼
評分結果(參考) : AC (2ms, 340KB)
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
while(cin >> s){
vector<int> letter(26, 0);
for(char c : s){
c = toupper(c);
if(c>='A' && c<='Z') letter[c-'A']++;
}
int cnt = 0;
for(int i : letter) cnt += (i&1);
if(cnt <= 1) cout << "yes !\n";
else cout << "no...\n";
}
return 0;
}