Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C++ สำหรับตรวจสอบอาร์เรย์สามารถสร้างได้จากลำดับ Equal Not-Equal หรือไม่


สมมติว่าเรามีสตริง S ยาว พิจารณาว่ามีตัวเลข n ตัวและเรียงกันเป็นวงกลม เราไม่ทราบค่าของตัวเลขเหล่านี้ แต่ถ้า S[i] ='E' แสดงว่าหมายเลข ith และ (i+1) เหมือนกัน แต่ถ้าเป็น 'N' ค่าเหล่านั้นจะต่างกัน จาก S เราต้องตรวจสอบว่าเราสร้างลำดับใหม่ได้หรือไม่

ดังนั้นหากอินพุตเป็น S ="ENNEENE" ผลลัพธ์จะเป็น True เพราะเราสามารถกำหนดค่าได้เช่น [15,15,4,20,20,20,15]

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

if S has single 'N', then:
   return false
return true

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#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;
}

อินพุต

"ENNEENE"

ผลลัพธ์

1