---
# System prepended metadata

title: 訊息處理

---

# 訊息處理
https://neoj.sprout.tw/problem/2333/
### 題目敘述
小高某天收到來自宇宙的訊息，是由大小寫英文字母、數字以及#、@、%所組成的字串。

小高知道這個宇宙訊息除了英文字母之外其他的都是雜訊，因此小高想要寫一份程式去除宇宙訊息中的雜訊，同時不改變英文字母的順序，也就是讓宇宙訊息只剩下英文字母，然後分析每個字母在宇宙訊息中分別出現幾次。但小高不太會寫程式，你可以幫幫他嗎？ 小高只看得懂小寫英文字母，所以希望你能順便把大寫字母轉成小寫的。

### 輸入說明
第一行有一個正整數$N$，$N≤100000$，表示宇宙訊息的長度為$N$，下一行是一個長度為$N$的字串，只包含大小寫英文字母、數字、#、@、%，保證該字串必包含一個英文字母。

### 輸出說明
輸出一行字串，為宇宙訊息去除雜訊後的結果。 接著輸出26個數字以空白分開，分別代表 a~z 在宇宙訊息去除雜訊後出現的個數。 行尾不含空格，最後一行要換行。

### 範例輸入
```
10
Abc#def%%G
```
### 範例輸出
```
abcdefg
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
```
# Code
```cpp
#include <iostream>

using namespace std;
char n[100010] = {};

int main(){
  int N;
  cin >> N;
  for (int t = 0; t < N; t++)
    cin >> n[t];
  for (int t = 0; t < N; t++)
  {
    if (n[t] >= 65 && n[t] <= 90)
      n[t] += 32;
    else if (n[t] < 97 || n[t] > 122)
      n[t] = 0;
  }
  for (int t = 0; t < N; t++)
  {
    if (n[t] != 0)
      cout << n[t];
  }
  
  cout << "\n";
  
  for (int t = 97; t <= 122; t++)
  {
    int k = 0;
    for (int r = 0; r <= N; r++)
    {
      if (n[r] == t)
        k++;
    }
    cout << k;
    if (t == 122) 
      break;
      cout << " ";
  }
  cout<<"\n";
}
```