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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP