less than 1 minute read

Problem Statement

leetcode problem link

Brute Force [Accepted]

class Solution:
    def hasSameDigits(self, s: str) -> bool:
        curr = [int(c) for c in s]
        while len(curr) > 2:
            temp = []
            for i in range(len(curr) - 1):
                a = curr[i]
                b = curr[i + 1]
                new_digit = (a + b) % 10
                temp.append(new_digit)
            curr = temp[:]
        return curr[0] == curr[1]

Editorial

class Solution:
    def hasSameDigits(self, s: str) -> bool:
        n = len(s)
        s_list = list(s)
        for i in range(1, n - 1):
            for j in range(n - i):
                digit1 = ord(s_list[j]) - ord("0")
                digit2 = ord(s_list[j + 1]) - ord("0")
                s_list[j] = chr(((digit1 + digit2) % 10) + ord("0"))
        return s_list[0] == s_list[1]