C++ 中用 N 个磁铁形成磁铁组的数量
数字1表示正极,而0表示负极。
磁铁的两极将为10或01。可以使用相互吸引的磁铁形成一个组。磁铁的两极彼此相对时,将属于同一组。
这里,给定 N 个磁铁。您需要找出可以用它们形成多少个组。
每当有两个不同的磁铁并排放置时,就会形成一个新的组。在这种情况下,增加组的数量。
让我们看一个例子。
输入
magnets = ["10", "01", "01", "01", "10", "01"]
输出
4
在给定的数组中,有 4 个磁铁彼此相邻并相互吸引。它们是“10”、“01”、“10”、“01”。
算法
- 用磁铁初始化数组。
- 将计数初始化为 1,因为我们正在取对。
- 编写一个循环,从数组的索引 1 迭代到数组的末尾。
- 如果当前磁铁不等于前一个磁铁,则增加计数。
- 返回计数。
实现
以下是上述算法在 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; }
输出
如果运行以上代码,则将获得以下结果。
4
广告