Common string methods in C Sharp (C#) - Time & Space Complexity
When we use common string methods, it is important to know how the time to run them changes as the string gets longer.
We want to understand how the work done grows when the input string size grows.
Analyze the time complexity of the following code snippet.
string input = "hello world";
string upper = input.ToUpper();
int index = input.IndexOf('o');
string sub = input.Substring(0, 5);
bool contains = input.Contains("wor");
This code uses common string methods to change case, find a character, get a part of the string, and check if a substring exists.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Each method scans or processes characters in the string.
- How many times: Usually once over the string or part of it.
As the string gets longer, these methods take more time roughly proportional to the string length.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 steps |
| 100 | About 100 steps |
| 1000 | About 1000 steps |
Pattern observation: The work grows in a straight line with the string size.
Time Complexity: O(n)
This means the time to run these string methods grows directly with the length of the string.
[X] Wrong: "String methods always run instantly no matter the string size."
[OK] Correct: Actually, many string methods look at each character, so longer strings take more time.
Knowing how string methods scale helps you write efficient code and explain your choices clearly in interviews.
"What if we used a method that compares two strings character by character? How would the time complexity change if the strings are very long?"