Weighted Uniform Strings

  • + 0 comments

    My Python solution is too slow and doesn't pass a lot of the test cases. Can anyone help me fix my code?

    def weightedUniformStrings(s, queries):
        findweight = {"a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9, "j":10, "k":11, "l":12, "m":13, "n":14, "o":15, "p":16, "q":17, "r":18, "s":19, "t":20, "u":21, "v":22, "w":23, "x":24, "y":25, "z":26}
        uniforms = [s[0]]
        for i in range(1, len(s)):
            if s[i] == s[i - 1]:
                uniforms.append(uniforms[-1] + s[i])
            else:
                uniforms.append(s[i])
        weights = [sum([findweight[letter] for letter in string]) for string in uniforms]
        return ["Yes" if query in weights else "No" for query in queries]