# HackerRank ‘Weighted Uniform Strings’ Solution

##### Short Problem Definition:

A weighted string is a string of lowercase English letters where each letter has a weight. Character weights are 1 to  26 from a to z…

Weighted Uniform String

##### Complexity:

time complexity is O(N)

space complexity is O(N)

##### Execution:

Parsing the string for every query is suboptimal, so I first preprocess the string. Now we know that uniform strings contain the same characters. A string can be of length 1. Do a single pass of the string and create all uniform substrings.

##### Solution:
def weightedUniformStrings(s, queries):
weights = set()
prev = -1
length = 0
for c in s:
weight = ord(c) - ord('a') + 1
if prev == c:
length += 1
else:
prev = c
length = 1

rval = []
for q in queries:
if q in weights:
rval.append("Yes")
else:
rval.append("No")
return rval


If you enjoyed this post, then make sure you subscribe to my Newsletter and/or Feed.