Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để kiểm tra mảng có thể được hình thành từ trình tự Equal Not-Equal hay không

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