VOOZH about

URL: https://www.geeksforgeeks.org/dsa/nth-character-concatenated-decimal-string/

⇱ Nth character in Concatenated Decimal String - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Nth character in Concatenated Decimal String

Last Updated : 27 Mar, 2023

If all decimal numbers are concatenated in a string then we will get a string that looks like string P as shown below. We need to tell the Nth character of this string. 
P = “12345678910111213141516171819202122232425262728293031….” 

Examples: 

N = 10 10th character is 1
N = 11 11th character is 0
N = 50 50th character is 3
N = 190 190th character is 1

We can solve this problem by breaking the string length-wise. We know that in decimal 9 numbers are of length 1, 90 numbers are of length 2, 900 numbers are of length 3 and so on, so we can skip these numbers according to the given N and can get the desired character.  

Processing for N = 190 is explained below,
P[184..195] = “979899100101” 
First getting length of number at N,
190 – 9 = 181 number length is more than 1
181 – 90*2 = 1 number length is more than 2
1 – 900*3 < 0 number length is 3
Now getting actual character at N,
1 character after maximum 2 length number(99) is, 1

Processing for N = 251 is explained below,
P[250..255] = “120121”
First getting length of number at N,
251 - 9 = 242 number length is more than 1
242 – 90*2 = 62 number length is more than 2
62 – 900*3 < 0 number length is 3
Now getting actual character at N,
62 characters after maximum 2 length number(99) is,
Ceil(62/3) = 21, 99 + 21 = 120 
120 is the number at N, now getting actual digit,
62%3 = 2,
2nd digit of 120 is 2, so our answer will be 2 only.

Implementation:


Output
2

Time Complexity: O(Log N), where N is the given integer.
Auxiliary Space: O(1), since no extra Space used.

Comment
Article Tags:
Article Tags: