You are given a string caption representing the caption for a video.
The following actions must be performed in order to generate a valid tag for the video:
Combine all words in the string into a single camelCase string prefixed with '#'. A camelCase string is one where the first letter of all words except the first one is capitalized. All characters after the first character in each word must be lowercase.
Remove all characters that are not an English letter, except the first '#'.
Truncate the result to a maximum of 100 characters.
Return the tag after performing the actions on caption.
Example 1:
Input: caption = "Leetcode daily streak achieved"
Output: "#leetcodeDailyStreakAchieved"
Explanation:
The first letter for all words except "leetcode" should be capitalized.
Example 2:
Input: caption = "can I Go There"
Output: "#canIGoThere"
Explanation:
The first letter for all words except "can" should be capitalized.
Example 3:
Input: caption = "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"
Output: "#hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"
Explanation:
Since the first word has length 101, we need to truncate the last two letters from the word.
Constraints:
1 <= caption.length <= 150caption consists only of English letters and ' '.Problem Overview: You receive a video caption as a string and must generate a valid tag from it. The task mainly involves scanning the caption, transforming words into a tag-style format, and constructing the final string using simple string operations.
Approach 1: Basic Simulation with Word Processing (O(n) time, O(n) space)
The straightforward solution is to simulate the tag creation process step by step. Split the caption into words using spaces, then process each word while building the result string. Typically the first word stays lowercase while the following words start with an uppercase letter to form a camelCase style tag. Each processed word is appended to the result, usually prefixed with a #.
This approach relies on standard string manipulation such as split, lower(), upper(), and concatenation. Since every character in the caption is processed at most once, the overall time complexity is O(n) where n is the caption length. The constructed tag also requires O(n) space.
Approach 2: Single-Pass Character Simulation (O(n) time, O(n) space)
A more direct method avoids splitting the string and instead iterates through the caption character by character. Track whether the current character starts a new word. When a new word begins, capitalize the first character (except possibly the first word) and append it to the output string. Skip unnecessary separators such as spaces and continue copying valid characters.
This technique is still a simulation but reduces intermediate allocations because you build the result while scanning the original string. Every character is visited once, giving O(n) time complexity and O(n) space for the generated tag. This pattern frequently appears in string formatting problems and basic simulation tasks.
Recommended for interviews: The single-pass simulation is the expected solution. It demonstrates control over string traversal and edge cases such as multiple spaces or formatting rules. The split-based approach is still valid and easier to write quickly, but the single-pass version shows stronger implementation skills with string processing.
We first split the title string into words, then process each word. The first word should be all lowercase, while for the subsequent words, the first letter is capitalized and the rest are lowercase. Next, we concatenate all the processed words and add a # symbol at the beginning. Finally, if the generated tag exceeds 100 characters in length, we truncate it to the first 100 characters.
The time complexity is O(n), and the space complexity is O(n), where n is the length of the title string.
Python
Java
C++
Go
TypeScript
| Approach | Time | Space | When to Use |
|---|---|---|---|
| Word Split Simulation | O(n) | O(n) | Quick implementation when built-in string split and formatting functions are allowed |
| Single-Pass Character Simulation | O(n) | O(n) | Preferred approach in interviews for precise control over string parsing |
3582. Generate Tag for Video Caption (Leetcode Easy) • Programming Live with Larry • 651 views views
Watch 7 more video solutions →Practice Generate Tag for Video Caption with our built-in code editor and test cases.
Practice on FleetCode