C++のカードのデッキにある種類のX
カードのデッキがあり、各カードには整数が書かれているとします。デッキ全体を1つ以上のカードのグループに分割できるように、X> =2を選択できるかどうかを確認する必要があります。この場合、次の条件を満たす必要があります。各グループには正確にX枚のカードがあります。各グループのカードはすべて同じ番号です。
したがって、入力がdeck =[1,2,3,4,4,3,2,1]のようである場合、可能なパーティションは[1,1]、[2,2]であるため、出力はTrueになります。 [3,3]、[4,4]。
これを解決するには、次の手順に従います-
- 1つのマップmpを定義する
- デッキ内のすべてのxに対して
- (mp [x]を1増やします)
- mpのすべてのキーと値のペアx
- ans:=gcd of(ans and value of x)
- ans> 1の場合はtrueを返し、それ以外の場合はfalseを返します
理解を深めるために、次の実装を見てみましょう-
例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool hasGroupsSizeX(vector<int>& deck) {
unordered_map<int, int> mp;
int ans;
for (auto x : deck)
mp[x]++;
for (auto x : mp)
ans = __gcd(ans, x.second);
return (ans > 1);
}
};
main(){
Solution ob;
vector<int> v = {1,2,3,4,4,3,2,1};
cout << (ob.hasGroupsSizeX(v));
} 入力
{1,2,3,4,4,3,2,1} 出力
1
-
LinuxでのC++の最高のIDEは何ですか?
大きなプロジェクトは、単なるテキストエディタでは管理が困難です。このような場合にIDEを使用すると、生産性が向上し、フラストレーションが軽減される可能性があります。 IDEにはさまざまな種類があり、ニーズに合ったものを選択する必要があります。 Linux上のC++に最適なIDEは1つではありません。ツールは賢く選ぶ必要があります。 Linux用の人気のあるIMOの最高のIDEのリストは次のとおりです。 C /C++開発用のNetbeans- Netbeansは、C /C++および他の多くのプログラミング言語向けの無料のオープンソースで人気のあるクロスプラットフォームIDEです。コミュニテ
-
カードのデッキをシャッフルするPythonプログラム
Pythonを使用してトランプのデッキをシャッフルする必要がある場合は、「itertools」および「random」パッケージを使用する必要があります。ランダムライブラリには、データを混同して表示するために使用できる「shuffle」という名前のメソッドがあります。 以下は同じのデモンストレーションです- 例 import itertools, random my_deck = list(itertools.product(range(1,11),['Spade','Heart','Diamond','Club'])) prin