AlgoLounge

Check If Digits Are Equal in String After Operations II

hard

You are given a string s consisting of digits. Perform the following operation repeatedly until the string has exactly two digits:

  • For each pair of consecutive digits in s, starting from the first digit, calculate a new digit as the sum of the two digits modulo 10.
  • Replace s with the sequence of newly calculated digits, maintaining the order in which they are computed.

Return true if the final two digits in s are the same; otherwise, return false.

Examples

Example 1

Input:  s = "3902"
Output: true

Initially, s = "3902" First operation: (s[0] + s[1]) % 10 = (3 + 9) % 10 = 2 (s[1] + s[2]) % 10 = (9 + 0) % 10 = 9 (s[2] + s[3]) % 10 = (0 + 2) % 10 = 2 s becomes "292" Second operation: (s[0] + s[1]) % 10 = (2 + 9) % 10 = 1 (s[1] + s[2]) % 10 = (9 + 2) % 10 = 1 s becomes "11" Since the digits in "11" are the same, the output is true.

Example 2

Input:  s = "34789"
Output: false

Initially, s = "34789". After the first operation, s = "7157". After the second operation, s = "862". After the third operation, s = "48". Since '4' != '8', the output is false.

Constraints

  • 3 <= s.length <= 10⁵
  • s consists of only digits.
TypeScript
Loading editor…
List of test cases (10)
Case 1
s = "3902"
Case 2
s = "34789"
Case 3
s = "111"
Case 4
s = "123"
Case 5
s = "000"
Case 6
s = "1010"
Case 7
s = "9999"
Case 8
s = "12345"
Case 9
s = "31415926"
Case 10
s = "0101010101010101010101010101010101010101"