===== ISTEM =====
Solve the following programming task.

TASK: Longest Common Subsequence

Write a function 'longest_common_subsequence(text1, text2)' that computes the length of the longest common subsequence (LCS) of the two given strings.

STARTER CODE (python):
def longest_common_subsequence(text1: str, text2: str) -> int:
    # Write your code here
    pass


RULES:
- Keep the function name and signature EXACTLY as given.
- Return working code only. No explanations.
- Put the code in a single ``` block.
- Try to solve it first. If you genuinely cannot, write only this single
  line instead of producing faulty code: CANNOT_SOLVE

===== HAM YANIT =====
```python
def longest_common_subsequence(text1: str, text2: str) -> int:
    if len(text1) < len(text2):
        text1, text2 = text2, text1

    dp = [0] * (len(text2) + 1)

    for c1 in text1:
        prev = 0
        for j, c2 in enumerate(text2):
            temp = dp[j + 1]
            if c1 == c2:
                dp[j + 1] = prev + 1
            else:
                dp[j + 1] = max(dp[j + 1], dp[j])
            prev = temp

    return dp[-1]
```