Skip to content

Latest commit

 

History

History
137 lines (56 loc) · 2.53 KB

File metadata and controls

137 lines (56 loc) · 2.53 KB

Description

An encoded string S is given.  To find and write the decoded string to a tape, the encoded string is read one character at a time and the following steps are taken:

    <li>If the character read is a letter, that letter is written onto the tape.</li>
    
    <li>If the character read is a digit (say <code>d</code>), the entire current tape is repeatedly written&nbsp;<code>d-1</code>&nbsp;more times in total.</li>
    

Now for some encoded string S, and an index K, find and return the K-th letter (1 indexed) in the decoded string.

 

Example 1:

Input: S = "leet2code3", K = 10

Output: "o"

Explanation: 

The decoded string is "leetleetcodeleetleetcodeleetleetcode".

The 10th letter in the string is "o".

Example 2:

Input: S = "ha22", K = 5

Output: "h"

Explanation: 

The decoded string is "hahahaha".  The 5th letter is "h".

Example 3:

Input: S = "a2345678999999999999999", K = 1

Output: "a"

Explanation: 

The decoded string is "a" repeated 8301530446056247680 times.  The 1st letter is "a".

 

Note:

    <li><code>2 &lt;= S.length &lt;= 100</code></li>
    
    <li><code>S</code>&nbsp;will only contain lowercase letters and digits <code>2</code> through <code>9</code>.</li>
    
    <li><code>S</code>&nbsp;starts with a letter.</li>
    
    <li><code>1 &lt;= K &lt;= 10^9</code></li>
    
    <li>The decoded string is guaranteed to have less than <code>2^63</code> letters.</li>
    

Solutions

Python3

Java

...