Giả sử chúng ta có một chuỗi S với n chữ cái thường. Một chuỗi được gọi là đa dạng nếu nó có các chữ cái liên tiếp trong bảng chữ cái tiếng Anh và mỗi chữ cái xuất hiện đúng một lần. (các chữ cái 'a' và'z 'không liền nhau). Chúng tôi phải kiểm tra xem nó có đa dạng hay không.
Vì vậy, nếu đầu vào giống như S ="fced", thì đầu ra sẽ là True.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
sort the array S flag := 1 for initialize i := 1, when i < size of S and flag is non-zero, update (increase i by 1), do: if S[i] - S[i - 1] is not equal to 1, then: flag := 0 return (if flag is non-zero, then true, otherwise false)
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <bits/stdc++.h> using namespace std; bool solve(string S){ sort(S.begin(), S.end()); int flag = 1; for (int i = 1; i < S.size() && flag; i++) if (S[i] - S[i - 1] != 1) flag = 0; return flag ? true : false; } int main(){ string S = "fced"; cout << solve(S) << endl; }
Đầu vào
"fced"
Đầu ra
1