Pythonの集合操作と重複排除テクニック

集合の基本操作 Pythonの集合は数学的な集合演算をサポートしています。以下は主要な集合操作の例です。 集合演算の実例 set_a = {'食事', '睡眠'} set_b = {'食事', '睡眠', '旅行', 'ゲーム', '読書', '運動'} # 共通部分(積集合) intersection = set_a & set_b print(f"共通要素: {intersection}") # 和集合 union = set_a | set_b print(f"全要素: {union}") # ...

8月11日 23:19 投稿

Javaアルゴリズム実践:コレクション操作とデータ構造

コレクション操作ユーティリティ ArraysとCollectionsクラスの主要メソッド: asList:リスト変換には戻り値が必要 copyOfRange:配列の部分コピー 型変換テクニック // List<Integer> → int[] public int[] convert(List<Integer> list) { return list.stream() .mapToInt(Integer::intValue) .toArray(); } Stream ...

8月10日 13:21 投稿

Javaアルゴリズム問題解法集

1. 文字頻度解析 問題概要 小文字英字のみで構成される単語が与えられます。最も頻繁に出現する文字とその回数を求めてください。複数の文字が同じ回数出現する場合は、辞書順で最小の文字を出力します。 実装例 import java.util.Scanner; public class CharacterFrequency { public static void main(String[] args) { Scanner input = new Scanner(Syste ...

8月9日 12:52 投稿

競技プログラミング問題集の解法解説

問題一覧 A: StringGame (考察) B: SequenceGame (貪欲法+二分探索) C: 猫の世話 (幾何学、考察) D: 数列H (数学) E: キャンディーH (考察) F: エンコーディング1.0 (動的計画法) G: エンコーディング2.0 (深さ優先探索) H: 迷路 (幅優先探索+二点探索) I: レーティング (考察+優先度付きキュー) J: 文字列変換 (総当り) K: 新ゲーム! (計算幾何学+最短経路) A: StringGa ...

8月7日 07:18 投稿

二分木の非再帰的走査

前順走査 前順走査では、ノードの値を「根 → 左の子 → 右の子」の順に処理します。 再帰的な実装 public void traverse(Node node) { if (node == null) { return; } System.out.println(node.value); traverse(node.left); traverse(node.right); } 非再帰的な実装 非再帰では、スタックを使用してノードを管理します。根ノードを最初に処理 ...

8月4日 15:22 投稿

C言語でXOR演算子を使って、古き良きXORリストを実装する方法

XORリストの基本概念 XORリストは、各ノードが前後のノードのアドレスをXOR演算子を使って1つのポインタフィールドに格納する特別な連結リストです。これにより、通常の双方向リストで必要な2つのポインタ(前と次)の代わりに、1つのポインタフィールドで済むため、メモリ使用量を削減できます。 この手法の鍵となるのは、XOR演算子の性質です。AとBがポインタ(アドレス ...

8月4日 11:12 投稿

Pythonプログラミング基礎:制御構造、ファイル操作、データ型の変換と実践例

条件分岐とブール値の取り扱い Pythonでは真偽値を表すためにTrueとFalse(英字の大文字始まる)を使用します。条件判断はif~elif~else構文で実現され、コードブロックの区切りはインデント(半角スペースまたはタブ)によって明示的に定義されます。 # ブール値の初期化 is_connected = True if is_connected: print("接続状態が有効です") elif not is_connected: ...

8月4日 09:21 投稿

Javaプログラミングの実践的学習と課題解決

はじめに 本記事では、主に以下の重要な概念と技術について取り扱います。 クラスとオブジェクトの基本概念、コンストラクタ、アクセス修飾子、メンバ変数。 文字列入力と出力の処理方法、文字列の分割、結合、変換操作。 ループ、条件文、配列、リスト。 今回の課題は主にPTAの第7回問題セットと期末試験で構成されており、主に「成績管理システム2」と「3」、および一部 ...

8月3日 09:43 投稿

トライ木(Trie木)の基礎と応用

基本概念 トライ木(Trie木)は文字列に関連するデータ構造で、辞書木または接頭辞木とも呼ばれます。その主な思想は「空間で時間を換える」ことです。大量の文字列を統計、ソート、または保存するために使用できます。検索する文字列をsとすると、トライ木の単一クエリの複雑度はO(|s|)です。 01トライ木は、XOR関連問題を扱うデータ構造のバリエーションです。複数の数 ...

8月3日 03:10 投稿

PythonでTrie(接頭辞木)を実装する

問題 208:Trie(接頭辞木)の実装 Trie(トライ、発音は「トライ」に近い)または接頭辞木は、文字列のデータセットを効率的に保存および検索するための木構造データ構造です。このデータ構造は、オートコンプリートやスペルチェックなど、多くの応用シーンで使用されます。 以下の操作をサポートする Trie クラスを実装してください。 Trie() - 接頭辞木オブジェク ...

8月1日 06:51 投稿