https://leetcode.com/problems/stamping-the-sequence/
Stamping The Sequence - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
class Solution:
def movesToStamp(self, stamp: str, target: str) -> List[int]:
def match(src, target):
result = False
for i in range(slen):
if src[i] == target[i]:
result = True
elif src[i] == '?':
continue
else:
result = False
break
return result
slen = len(stamp)
tlen = len(target)
answer = []
for _ in range(10 * tlen):
matchedAny = False
for i in range(tlen - slen + 1):
if match(target[i : i + slen], stamp):
matchedAny = True
answer.append(i)
target = target[:i] + '?' * slen + target[i + slen:]
if target == '?' * tlen:
return reversed(answer)
if not matchedAny:
return []
return []
마지막에 찍은 stamp 는 다른 글자에 가려지지 않고 온전한 stamp일것이다.
그것부터 시작해서 역순으로 '?'로 변환해나가면서 인덱스리스트를 만든뒤
나중에 뒤집어서 출력해주면 된다.
'코딩 테스트 및 알고리즘 > leetcode for google' 카테고리의 다른 글
leetcode medium : Most Popular Video Creator (0) | 2022.11.04 |
---|---|
leetcode medium : 3Sum Closest (0) | 2022.11.04 |
leetcode medium : Maximum Length of a Concatenated String with Unique Characters (0) | 2022.10.29 |
leetcode easy : The Employee That Worked on the Longest Task (0) | 2022.10.14 |
leetcode medium : Using a Robot to Print the Lexicographically Smallest String (0) | 2022.10.14 |