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