Deloitte | COGNIZANT | IBM | CAPGEMINI
def legoString(input1, input2, input3):
wall = input1
n = input2
blocks = input3
if not wall or not blocks:
return [-1]
word_len = len(blocks[0])
if len(wall) < word_len:
return [-1]
from collections import Counter
block_count = Counter(blocks)
result = []
for i in range(len(wall) - word_len + 1):
for used in range(2, n+1):
length = used * word_len
if i + length > len(wall):
break
substring = wall[i:i+length]
words = [substring[j:j+word_len] for j in range(0, length, word_len)]
count_words = Counter(words)
if all(count_words[w] <= block_count[w] for w in count_words) and sum(count_words.values()) == used:
result.append(i)
return sorted(set(result)) if result else [-1]
//Lego strings✅✅
VIRTUSA✅
729 ·