LeetCode 28 と 459 の解法:KMPアルゴリズムの実装と応用
LeetCode 28: 文字列の中で最初に一致するインデックスを検索する
問題リンク: 28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)
KMPアルゴリズムを使用して、部分文字列を効率的に検索します。ここでは、失敗時のバックトラックテーブル(Next/LPS配列)を構築し、メイン文字列とパターンを比較します。
Python実装例
class Solution:
def build_lps(self, pa ...
7月8日 19:57 投稿
JavaでのAES-256暗号化実装ガイド
AES-256を用いたデータ暗号化は、Javaアプリケーションのセキュリティ強化において重要な技術です。JCA(Java Cryptography Architecture)を活用した実装方法を解説します。
暗号化処理を安全に実行するためには、無制限強度暗号化ポリシーファイルの導入が必須です。JDKのセキュリティ設定を確認し、必要に応じてポリシーファイルを更新してください。
暗号化処理の実装 ...
7月8日 20:11 投稿
JavaアプリケーションにおけるLog4j2を使用したファイル出力ロギングの実装
1. 依存関係の追加
Mavenプロジェクトのpom.xmlに以下の依存関係を追加します:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId&g ...
7月8日 19:49 投稿
HarmonyOS NEXT におけるノートアプリ実装 - RDBデータ永続化層
ノートアプリの主要機能として以下が含まれる:
ノート作成(タイトル・本文・作成日時・更新日時を記録)
ノート編集
ノート削除
分類管理(カスタムカテゴリの定義・適用)
検索機能(タイトルまたは本文からの部分一致検索)
データストレージ選択
本実装では HarmonyOS の関係型データベース(RDB)を採用する。これは SQLite ベースのローカル DB 実装で、CRUD 操 ...
7月8日 19:53 投稿
Qtでマウスドラッグによる矩形移動を実装する
Qtでドラッグ可能な矩形を実現するには、QWidgetを継承したカスタムクラスを作成し、マウスイベントのハンドリングと描画処理を統合します。以下は、座標変換を正確に扱い、親ウィジェット内での安定したドラッグ動作を保証する改良版実装です。
まず、DraggableBoxという名前のカスタムウィジェットを定義します。このクラスは、ドラッグ中の相対オフセットを保持し、親 ...
7月8日 20:17 投稿
NOIP 2011 第1日問題解説
問題1: カーペットの重なり
会場の矩形エリア(平面直交座標系の第一象限と見なされます)にいくつかの矩形カーペットを敷きます。合計n枚のカーペットがあり、1からnまで番号が付けられています。これらのカーペットは、番号の小さい順に座標軸に平行に順次敷かれ、後から敷かれたカーペットが前に敷かれたカーペットの上に重なります。カーペットの敷き詰めが完了した後 ...
7月8日 20:20 投稿