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 投稿