Nam châm: "10" (dương-âm) hoặc "01" (âm-dương). Nhóm hình thành khi nam châm hút nhau (cực khác nhau kề nhau). Cho N nam châm, đếm số nhóm.
Quy tắc: Khi hai nam châm kề nhau khác nhau, tạo nhóm mới. Khởi tạo count=1, duyệt từ 1: nếu magnets[i] != magnets[i-1] thì count++.
Ví dụ: ["10","01","01","01","10","01"] → 4 nhóm.
Giải thuật
- count = 1
- Vòng lặp i=1..n-1: nếu magnets[i] != magnets[i-1] thì count++
- Trả về count
Ví dụ minh họa
#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
4