Suffix Automaton: Definition, Construction, and Applications
Definition
A suffix automaton (SAM) for a string (s) is the minimal deterministic finite automaton (DFA) that accepts all suffixes of (s). Formally:
A SAM is a directed acyclic graph (DAG) where nodes represent states and edges represent transitions.
The source node (t_0) serves as the initial state. All states are reachable from (t_0).
Each t ...
Posted on Fri, 08 May 2026 15:39:54 +0000 by james13009
Java Solutions for LeetCode Linked List Problems Following Code Record
Remove Linked List Elements (LeetCode 203)
Given the head of a linked list and an integer val, remove all nodes where Node.val == val and return the new head node.
Using a dummy head simplifies handling edge cases, especially when the head node itself needs to be removed. A traversal pointer prev is used to point to the node preceding the one c ...
Posted on Fri, 08 May 2026 12:36:38 +0000 by Anti-Moronic
Binary Tree Traversals: Recursive and Iterative Approaches
1. Binary Tree Categories
Full Binary Tree: A binary tree where all nodes have either 0 or 2 children, and all leaf nodes are at the same level. For depth k, the tree contains (2^k - 1) nodes.
Complete Binary Tree: A binary tree where all levels except possibly the last are completely filled, and all nodes are as far left as possible.
Binary Se ...
Posted on Fri, 08 May 2026 11:22:02 +0000 by jtbaker
HashMap Interview Quick Reference and Best Practices
Core Principles (Three Key Points)
Underlying Structure
HashMap uses an array as the primary storage, combined with linked lists for handling hash collisions, and converts to red-black trees when certain conditions are met. When a linked list exceeds 8 elements and the array length is at least 64, the structure transforms into a red-black tree, ...
Posted on Fri, 08 May 2026 08:50:05 +0000 by dicky18
Python Dictionary and Set Operations: A Practical Guide
Dictionaries
A dictionary (dict) is a data structure that stores key-value pairs. Let's explore its pratcical usage.
Creating Dictionaries
Using the dict() constructor:
person = dict(name="Alice", age=30, city="New York")
print(person) # Output: {'name': 'Alice', 'age': 30, 'city': 'New York'}
Using curly braces:
person = ...
Posted on Fri, 08 May 2026 03:39:51 +0000 by xkellix
Essential Utility Methods in Java's Arrays Class
Convert Array to List with asList
The Arrays.asList method wraps an array into a fixed-size list, enabling collection-based operations like iteration or passing to methods expecting a List.
Signature:
public static <T> List<T> asList(T... a)
Example:
import java.util.Arrays;
import java.util.List;
public class ArrayConversion {
...
Posted on Fri, 08 May 2026 02:18:07 +0000 by shana
Editorial and Analysis for 2024 ICPC Network Preliminary Round 2
Competition Overview
The problem difficulty is generally estimated as F < A = J = I < L = G = E < C = K = H. The contest featured a mix of standard algorithms and optimization problems. Below is the detailed analysis and solution for each problem.
Problem F: Prefix Sum Threshold
Problem Statement:Given an initial score of 1500 and a sequence o ...
Posted on Thu, 07 May 2026 20:53:12 +0000 by EGNJohn
Stack and Queue Data Structure Problems in C++
Stack and Queue in C++ STL
The C++ Standard Library provides implementations of both stack and queue data structures. These are fundamental containers that follow specific access orders—LIFO (Last In, First Out) for stacks and FIFO (First In, First Out) for queues.
Stack Interface
push(element): Inserts an element at the top
pop(): Removes the ...
Posted on Thu, 07 May 2026 15:47:20 +0000 by Rado001
Redis Core Concepts: Data Structures, Persistence, and Clustering Strategies
Data Types and Internal Encodings
Redis distinguishes between external data types exposed to users and internal encoding mechanisms that optimize memory usage. Understanding these mappings helps in capacity planning and performance tuning.
String Implementation
Strings utilize Simple Dynamic Strings (SDS) rather than raw C strings. SDS maintain ...
Posted on Thu, 07 May 2026 11:58:00 +0000 by tylrwb
Core Python Data Structures and Control Flow
Tuple Indexing
Tuples support both forward and reverse indexing:
data = (10, 20, 30, 40, 50)
print(data[0]) # Output: 10
print(data[-1]) # Output: 50
Nested tuples can be accessed using multiple indices:
matrix = ((1, 2, 3), (4, 5, 6))
print(matrix[0][1]) # Output: 2
Iteration
Iterate over sequences using while or for:
values = (5, 10, 15 ...
Posted on Thu, 07 May 2026 11:11:06 +0000 by NerdConcepts