@@ -0,0 +1,1705 @@
+# Time:  O(n)%0A# Space: O(1)%0A%0A# An encoded string S is given.%0A# To find and write the decoded string to a tape,%0A# the encoded string is read one character at a time and the following steps are taken:%0A#%0A# If the character read is a letter, that letter is written onto the tape.%0A# If the character read is a digit (say d),%0A# the entire current tape is repeatedly written d-1 more times in total.%0A# Now for some encoded string S, and an index K,%0A# find and return the K-th letter (1 indexed) in the decoded string.%0A#%0A# Example 1:%0A#%0A# Input: S = %22leet2code3%22, K = 10%0A# Output: %22o%22%0A# Explanation: %0A# The decoded string is %22leetleetcodeleetleetcodeleetleetcode%22.%0A# The 10th letter in the string is %22o%22.%0A# Example 2:%0A#%0A# Input: S = %22ha22%22, K = 5%0A# Output: %22h%22%0A# Explanation: %0A# The decoded string is %22hahahaha%22.  The 5th letter is %22h%22.%0A# Example 3:%0A#%0A# Input: S = %22a2345678999999999999999%22, K = 1%0A# Output: %22a%22%0A# Explanation: %0A# The decoded string is %22a%22 repeated 8301530446056247680 times.  The 1st letter is %22a%22.%0A#%0A# Note:%0A#%0A# 2 %3C= S.length %3C= 100%0A# S will only contain lowercase letters and digits 2 through 9.%0A# S starts with a letter.%0A# 1 %3C= K %3C= 10%5E9%0A# The decoded string is guaranteed to have less than 2%5E63 letters.%0A%0Aclass Solution(object):%0A    def decodeAtIndex(self, S, K):%0A        %22%22%22%0A        :type S: str%0A        :type K: int%0A        :rtype: str%0A        %22%22%22%0A        i = 0%0A        for c in S:%0A            if c.isdigit():%0A                i *= int(c)%0A            else:%0A                i += 1%0A%0A        for c in reversed(S):%0A            K %25= i%0A            if K == 0 and c.isalpha():%0A                return c%0A%0A            if c.isdigit():%0A                i /= int(c)%0A            else:%0A                i -= 1%0A

Create decoded-string-at-index.py