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

Số nhóm nam châm được hình thành từ N nam châm trong C ++

Chữ số 1 đại diện cho cực dương trong khi 0 đại diện cho cực âm.

Nam châm sẽ có cả hai cực là 10 hoặc 01. Một nhóm có thể được thành lập với các nam châm hút nhau. Các nam châm có cực khác hướng đối diện nhau sẽ ở cùng một nhóm.

Ở đây, bạn được cung cấp N số nam châm. Bạn cần tìm ra số lượng nhóm có thể được thành lập với họ.

Bất cứ khi nào có hai nam châm khác nhau cạnh nhau, sẽ tạo thành một nhóm mới. Trong trường hợp đó, hãy tăng số lượng các nhóm.

Hãy xem một ví dụ.

Đầu vào

magnets = ["10", "01", "01", "01", "10", "01"]

Đầu ra

4

Có 4 nam châm hút nhau nằm cạnh nhau trong dãy đã cho. Chúng là "10", "01", "10", "01".

Thuật toán

  • Khởi tạo mảng bằng nam châm.
  • Khởi tạo số đếm là 1 khi chúng ta đang lấy các cặp.
  • Viết một vòng lặp lặp từ 1 chỉ mục đến cuối mảng.
  • Nếu nam châm hiện tại không bằng nam châm trước đó, hãy tăng số lượng.
  • Trả lại số lượng.

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

#include <bits/stdc++.h>
using namespace std;
int getMangetGroupsCount(string magnets[], int n) {
   int count = 1;
   for (int i = 1; i < n; i++) {
      if (magnets[i] != magnets[i - 1]) {
         count++;
      }
   }
   return count;
}
int main() {
   string magnets[] = { "10", "01", "01", "01", "10", "01" };
   int n = 6;
   cout << getMangetGroupsCount(magnets, n) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

4