Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Sắp xếp chữ cái trong chuỗi và cộng các số nguyên đi kèm bằng C++


Cho chuỗi chứa chữ cái và số. Sắp xếp chữ cái theo thứ tự bảng chữ cái, cộng tất cả số nguyên, nối kết quả sau chuỗi chữ cái. Ví dụ:

Input: "adv4fc3" → "acdfv7" (4+3=7) Input: "h2d7e3f" → "defh12" (2+7+3=12)

Thuật toán

  • Mảng count[26] đếm tần suất mỗi chữ cái.
  • Biến sum cộng dồn các chữ số.
  • Duyệt chuỗi: nếu chữ cái → tăng count; nếu số → cộng vào sum.
  • Xây chuỗi kết quả: thêm từng chữ cái theo count, cuối cùng thêm to_string(sum).

Ví dụ

#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;

int main() {
    string str = "h2d7e3f";
    int ch[26] = {0}, sum = 0;
    for (char c : str) {
        if (c >= 'a' && c <= 'z') ch[c - 'a']++;
        else sum += c - '0';
    }
    string final = "";
    for (int i = 0; i < 26; i++) {
        char a = 'a' + i;
        while (ch[i]-- > 0) final += a;
    }
    if (sum > 0) final += to_string(sum);
    cout << "Rearranged string: " << final;
    return 0;
}

Kết quả

Rearranged string: defh12

Kết luận

Sắp xếp chữ cái + cộng số trong chuỗi: counting sort O(n) cho chữ cái, cộng dồn số. Code C++.