<p>You are given two positive integers <code>low</code> and <code>high</code>.</p>

<p>An integer <code>x</code> consisting of <code>2 * n</code> digits is <strong>symmetric</strong> if the sum of the first <code>n</code> digits of <code>x</code> is equal to the sum of the last <code>n</code> digits of <code>x</code>. Numbers with an odd number of digits are never symmetric.</p>

<p>Return <em>the <strong>number of symmetric</strong> integers in the range</em> <code>[low, high]</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> low = 1, high = 100
<strong>Output:</strong> 9
<strong>Explanation:</strong> There are 9 symmetric integers between 1 and 100: 11, 22, 33, 44, 55, 66, 77, 88, and 99.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> low = 1200, high = 1230
<strong>Output:</strong> 4
<strong>Explanation:</strong> There are 4 symmetric integers between 1200 and 1230: 1203, 1212, 1221, and 1230.
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= low &lt;= high &lt;= 10<sup>4</sup></code></li>
</ul>

class Solution:
    def countSymmetricIntegers(self, low: int, high: int) -> int:
        def is_symmetric(num_str):
            mid = len(num_str) // 2
            first_half_sum = sum(int(digit) for digit in num_str[:mid])
            second_half_sum = sum(int(digit) for digit in num_str[mid:])
            return first_half_sum == second_half_sum
        
        # Optimize by focusing only on numbers with even digit counts
        symmetric_count = 0
        for num in range(low, high + 1):
            num_str = str(num)
            if len(num_str) % 2 == 0 and is_symmetric(num_str):
                symmetric_count += 1
        
        return symmetric_count


935