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)