Giả sử chúng ta có một chuỗi có độ dài S. Xét có n số và chúng được sắp xếp theo hình tròn. Chúng ta không biết giá trị của những con số này nhưng nếu S [i] ='E' thì nó cho biết số thứ i và (i + 1) giống nhau, nhưng nếu đó là 'N' thì chúng khác nhau. Từ S, chúng ta phải kiểm tra xem chúng ta có thể tạo lại trình tự hay không.
Vì vậy, nếu đầu vào là S ="ENNEENE", thì đầu ra sẽ là True, vì chúng ta có thể gán các giá trị như [15,15,4,20,20,20,15].
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 -
if S has single 'N', then: return false return true
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){ if (count(S.begin(), S.end(), 'N') == 1) return false; return true; } int main(){ string S = "ENNEENE"; cout << solve(S) << endl; }
Đầu vào
"ENNEENE"
Đầu ra
1