Leetcode String Patterns
1. Two Pointers
Used for comparing characters from both ends or merging.
Examples:
- Reverse String
- Valid Palindrome
- Merge Strings Alternately
Template:
left, right = 0, len(s) - 1
while left < right:
# logic
left += 1
right -= 1
2. Sliding Window
Used to find substrings or character sequences dynamically.
Examples:
- Longest Substring Without Repeating Characters
- Minimum Window Substring
- Find All Anagrams in a String
Template:
window = {}
left = 0
for right in range(len(s)):
# expand/shrink window based on condition
3. String Reversal / Word Reordering
Used to reverse characters or words.
Examples:
- Reverse Words in a String
- Reverse String II
- Reverse Words III
Leetcode String Patterns
Example:
" ".join(s.split()[::-1])
4. Character Frequency / Counting
Used to validate anagrams, palindromes, or count chars.
Examples:
- Valid Anagram
- Group Anagrams
- Palindrome Permutation
from collections import Counter
Counter(s)
5. Hashmap / Pattern Matching
Track structure mapping between characters or words.
Examples:
- Isomorphic Strings
- Word Pattern
- Substring with Concatenation of All Words
Idea:
Use two hashmaps to track bijection.
6. Dynamic Programming (DP)
Used for optimal string transformation and decoding.
Examples:
- Longest Palindromic Substring
- Edit Distance
- Wildcard Matching
- Decode Ways
DP table or memoization is common.
Leetcode String Patterns
7. Regex / Parsing
Used for format validation, token extraction, or transformation.
Examples:
- Valid Number
- Reformat Date
- Simplify Path
import re
re.match(r"...", s)
8. Simulation / String Construction
Simulate behavior and construct strings step by step.
Examples:
- Count and Say
- Multiply Strings
- Integer to Roman / Roman to Integer
- Decode String
Use loops, conditions, and sometimes stacks.
9. Trie / Prefix Tree
Used for efficient word storage, prefix matching, and autocomplete.
Examples:
- Implement Trie
- Replace Words
- Word Search II
Implement TrieNode class with insert/search methods.
10. Greedy + Stack/String Building
Use greedy rules to remove characters or optimize construction.
Leetcode String Patterns
Examples:
- Remove K Digits
- Remove Duplicate Letters
- Custom Sort String
Often use stack + greedy conditions.