394. Decode String
Difficulty: Medium
Given an encoded string, return its decoded string.
The encoding rule is: k[encoded_string]
, where the encoded_string
inside the square brackets is being repeated exactly k
times. Note that k
is guaranteed to be a positive integer.
You may assume that the input string is always valid; there are no extra white spaces, square brackets are well-formed, etc. Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k
. For example, there will not be input like 3a
or 2[4]
.
The test cases are generated so that the length of the output will never exceed 105
.
Example 1:
Input: s = "3[a]2[bc]" Output: "aaabcbc"
Example 2:
Input: s = "3[a2[c]]" Output: "accaccacc"
Example 3:
Input: s = "2[abc]3[cd]ef" Output: "abcabccdcdcdef"
Python Solution:
class Solution:
def decodeString(self, s: str) -> str:
c=0
z=0
for i in s:
if i=='[':
c+=1
while c!=0:
ans=''
for i in range(len(s)):
if s[i]=='[':
j=i
if s[i]==']':
k=i
ans1=''
for m in range(j-1,-1,-1):
if s[m].isdigit():
ans1=ans1+s[m]
z=m
else:
break
ans1=int(ans1[::-1])
for _ in range(ans1):
ans=ans+s[j+1:k]
s=s[:z]+ans+s[k+1:]
break
c-=1
return s
Comments
Post a Comment