Bird
Raised Fist0
Pythonprogramming~5 mins

String creation and representation in Python - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: String creation and representation
O(n^2)
Understanding Time Complexity

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.

Scenario Under Consideration

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 Repeating Operations

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.
How Execution Grows With Input

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
10About 55 copies (1+2+...+10)
100About 5050 copies
1000About 500,500 copies

Pattern observation: The work grows much faster than the input size because each addition copies the whole string so far.

Final Time Complexity

Time Complexity: O(n2)

This means the time needed grows roughly with the square of the string length, making it slower for long strings.

Common Mistake

[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.

Interview Connect

Understanding how string building works helps you write efficient code and explain your choices clearly in real projects or interviews.

Self-Check

"What if we used a list to collect characters first, then joined them at the end? How would the time complexity change?"

Practice

(1/5)
1. Which of the following is a correct way to create a string in Python?
easy
A. text = Hello'
B. text = Hello
C. text = 'Hello'
D. text = """Hello

Solution

  1. Step 1: Check string delimiters

    Python strings must be enclosed in matching quotes: single ('') or double (\"\").
  2. Step 2: Validate each option

    text = 'Hello' uses single quotes correctly. text = Hello misses quotes. text = Hello' has mismatched quotes. text = """Hello has unclosed triple quotes.
  3. Final Answer:

    text = 'Hello' -> Option C
  4. Quick Check:

    Strings need matching quotes = A [OK]
Hint: Strings always need matching quotes around text [OK]
Common Mistakes:
  • Forgetting quotes around text
  • Using mismatched quotes
  • Leaving quotes unclosed
2. Which of the following is the correct syntax to create a multi-line string in Python?
easy
A. text = '''Hello World'''
B. text = "Hello\nWorld"
C. text = 'Hello\nWorld'
D. text = '''Hello\nWorld'''

Solution

  1. Step 1: Understand multi-line string syntax

    Triple quotes (''' or """) allow writing strings across multiple lines without escape characters.
  2. 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.
  3. Final Answer:

    text = '''Hello World''' -> Option A
  4. Quick Check:

    Triple quotes with real newlines = C [OK]
Hint: Use triple quotes and press Enter for multi-line strings [OK]
Common Mistakes:
  • Using single or double quotes for multi-line text
  • Escaping newlines inside triple quotes
  • Confusing escaped \n with actual newlines
3. What will be the output of the following code?
text = '''Hello
World'''
print(text)
medium
A. Hello\nWorld
B. Hello World
C. Hello World
D. SyntaxError

Solution

  1. Step 1: Understand triple-quoted string behavior

    Triple quotes preserve newlines inside the string as actual line breaks.
  2. 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.
  3. Final Answer:

    Hello World (two lines) -> Option B
  4. Quick Check:

    Triple quotes keep newlines = A [OK]
Hint: Triple quotes print newlines as line breaks, not \n text [OK]
Common Mistakes:
  • Confusing escaped \n with actual newline
  • Expecting literal \n to print as two characters
  • Thinking triple quotes cause syntax error
4. The following code throws an error. What is the problem?
text = 'It's a sunny day'
medium
A. Missing escape for single quote inside string
B. Using double quotes instead of single quotes
C. Triple quotes needed for single quotes inside
D. No error, code is correct

Solution

  1. 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").
  2. 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.
  3. Final Answer:

    Missing escape for single quote inside string -> Option A
  4. Quick Check:

    Escape inner quotes or use different quotes = D [OK]
Hint: Escape inner quotes or use different quote types [OK]
Common Mistakes:
  • Ignoring escape for inner quotes
  • Assuming single quotes inside single quotes are allowed
  • Not using triple quotes for complex strings
5. You want to create a dictionary where keys are words and values are their lengths from a multi-line string. Which code correctly creates this dictionary?
text = '''apple\nbanana\ncherry\n'''
# Fill in the blank:
d = {word: len(word) for word in _____}
hard
A. text.split()
B. text.split(' ')
C. text.split('\n')
D. text.splitlines()

Solution

  1. Step 1: Understand the string and splitting methods

    The string ends with a newline ('''apple\nbanana\ncherry\n'''). splitlines() and split('\n') include a trailing empty string ''. split() splits on all whitespace (including newlines) and discards empty fields. split(' ') ignores newlines.
  2. Step 2: Choose the method that avoids extra empty key

    split() produces exactly {'apple':5, 'banana':6, 'cherry':6} without '' : 0.
  3. Final Answer:

    text.splitlines() -> Option D
  4. Quick Check:

    splitlines() handles newlines cleanly = B [OK]
Hint: Use splitlines() to split on newlines cleanly [OK]
Common Mistakes:
  • 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