DDSA Solutions

709. To Lower Case

Time: O(n)
Space: O(n)
Advertisement

Intuition

For each character, if it's uppercase (A-Z), convert to lowercase by adding 32 (or OR with 32).

Algorithm

  1. 1For each char c: if c is between A and Z, result += (char)(c + 32). Else result += c.

Common Pitfalls

  • Or simply use String.toLowerCase(). For manual: uppercase letters are ASCII 65-90, lowercase 97-122.
709.cs
C#
// Approach: Iterate over the char array; subtract the ASCII difference
// ('A'-'a') from each uppercase letter.
// Time: O(n) Space: O(n)

public class Solution
{
    public string ToLowerCase(string s)
    {
        int diff = 'A' - 'a';

        char[] ans = s.ToCharArray();

        for (int i = 0; i < ans.Length; ++i)
        {
            if (ans[i] >= 'A' && ans[i] <= 'Z')
                ans[i] -= (char)diff;
        }

        return new string(ans);
    }
}
Advertisement
Was this solution helpful?