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
廣告