多伦多Salesforce面试经验:解密算法问题Leetcode 482
问题描述:
给定一个加密后的字符串s,其中连续的数字表示重复的次数,连续的字母表示重复的字符。解密字符串并返回原始字符串。
示例:
输入:s = “3a2b4c”
输出:“aaabbbbcccc”
解题思路:
对于每个数字字符,找到相应的字母字符,然后根据重复的次数组合成新的字符串。
class Solution:
def decodeString(self, s: str) -> str:
letter = ""
num = ""
stack = []
for char in s:
if char.isalpha():
letter += char
elif char.isdigit():
num += char
elif char == "
for char in s:
if char.isalpha():
letter += char
elif char.isdigit():
num += char
elif char == "[":
stack.append((letter, int(num)))
letter = ""
num = ""
else:
prev_letter, repetitions = stack.pop()
letter = prev_letter + letter * repetitions
return letter
This problem mainly involves using the stack data structure to decrypt and reconstruct the string. During the interview, you can manually simulate the process with specific examples to demonstrate your thinking process and problem-solving skills. Good luck! ![]()
