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

Kiểm tra chuỗi có phải đa dạng (diverse) không bằng C++

Mô tả bài toán

Chuỗi S chữ thường. Gọi đa dạng nếu các ký tự là các chữ cái liên tiếp trong bảng chữ cái (a,b,c...) và mỗi chữ cái xuất hiện đúng 1 lần. 'a' và 'z' không liên tiếp. Kiểm tra S có đa dạng không.

Ví dụ

S="fced" → sắp xếp: c,d,e,f → liên tiếp → True.

Thuật toán

Sắp xếp S. Kiểm tra S[i] - S[i-1] == 1 cho mọi i. Nếu có cặp không liên tiếp → false.

Code C++

#include <bits/stdc++.h>
using namespace std;

bool solve(string S) {
    sort(S.begin(), S.end());
    for (int i = 1; i < (int)S.size(); i++)
        if (S[i] - S[i-1] != 1)
            return false;
    return true;
}

int main() {
    string S = "fced";
    cout << solve(S) << endl;
    return 0;
}

Đầu vào / Đầu ra

Input: "fced"

Output: 1 (true)