String creation and representation in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When we create and represent strings in Python, it is helpful to know how the time needed changes as the string gets longer.
We want to understand how the work grows when making or copying strings of different sizes.
Analyze the time complexity of the following code snippet.
text = ""
for char in input_string:
text += char
This code builds a new string by adding one character at a time from an existing string.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Adding one character to the string inside the loop.
- How many times: Once for each character in the input string.
Each time we add a character, Python creates a new string by copying the old one and adding the new character.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 55 copies (1+2+...+10) |
| 100 | About 5050 copies |
| 1000 | About 500,500 copies |
Pattern observation: The work grows much faster than the input size because each addition copies the whole string so far.
Time Complexity: O(n2)
This means the time needed grows roughly with the square of the string length, making it slower for long strings.
[X] Wrong: "Adding characters one by one to a string is fast and takes time proportional to the string length."
[OK] Correct: Each addition copies the entire string so far, causing the total time to grow much faster than just the length.
Understanding how string building works helps you write efficient code and explain your choices clearly in real projects or interviews.
"What if we used a list to collect characters first, then joined them at the end? How would the time complexity change?"
Practice
Solution
Step 1: Check string delimiters
Python strings must be enclosed in matching quotes: single ('') or double (\"\").Step 2: Validate each option
text = 'Hello'uses single quotes correctly.text = Hellomisses quotes.text = Hello'has mismatched quotes.text = """Hellohas unclosed triple quotes.Final Answer:
text = 'Hello' -> Option CQuick Check:
Strings need matching quotes = A [OK]
- Forgetting quotes around text
- Using mismatched quotes
- Leaving quotes unclosed
Solution
Step 1: Understand multi-line string syntax
Triple quotes (''' or """) allow writing strings across multiple lines without escape characters.Step 2: Analyze options
Options A and B use single/double quotes with escaped newline, which works but is not multi-line string creation.text = '''Hello\nWorld'''uses triple quotes but escapes newline, so it shows literal \n.text = '''Hello World'''uses triple quotes with actual newline, creating a true multi-line string.Final Answer:
text = '''Hello World''' -> Option AQuick Check:
Triple quotes with real newlines = C [OK]
- Using single or double quotes for multi-line text
- Escaping newlines inside triple quotes
- Confusing escaped \n with actual newlines
text = '''Hello World''' print(text)
Solution
Step 1: Understand triple-quoted string behavior
Triple quotes preserve newlines inside the string as actual line breaks.Step 2: Analyze the string content and print output
The \n escape sequence in the triple-quoted string is interpreted as a newline character, so the string content is 'Hello' + newline + 'World'. Thus, print(text) outputs two lines: 'Hello' then 'World' on the next line.Final Answer:
Hello World (two lines) -> Option BQuick Check:
Triple quotes keep newlines = A [OK]
- Confusing escaped \n with actual newline
- Expecting literal \n to print as two characters
- Thinking triple quotes cause syntax error
text = 'It's a sunny day'
Solution
Step 1: Identify the string delimiter and content
The string uses single quotes to start and end, but contains an unescaped single quote inside (in "It's").Step 2: Understand why error occurs
The inner single quote ends the string early, causing a syntax error. It needs to be escaped with a backslash or use double/triple quotes.Final Answer:
Missing escape for single quote inside string -> Option AQuick Check:
Escape inner quotes or use different quotes = D [OK]
- Ignoring escape for inner quotes
- Assuming single quotes inside single quotes are allowed
- Not using triple quotes for complex strings
text = '''apple\nbanana\ncherry\n'''
# Fill in the blank:
d = {word: len(word) for word in _____}Solution
Step 1: Understand the string and splitting methods
The string ends with a newline ('''apple\nbanana\ncherry\n''').splitlines()andsplit('\n')include a trailing empty string ''.split()splits on all whitespace (including newlines) and discards empty fields.split(' ')ignores newlines.Step 2: Choose the method that avoids extra empty key
split()produces exactly {'apple':5, 'banana':6, 'cherry':6} without '' : 0.Final Answer:
text.splitlines() -> Option DQuick Check:
splitlines() handles newlines cleanly = B [OK]
- Using split() which discards empty lines but may split on other whitespace
- Using split('\n') which includes trailing empty string
- Using split(' ') which misses newlines
