Find i’th Index character in a binary string obtained after n iterations

16 Jun, 2022
Given a decimal number m, convert it into a binary string and apply n iterations. In each iteration, 0 becomes “01” and 1 becomes “10”. Find the (based on indexing) index character in the string after the nth iteration.
Examples:  
Input : m = 5, n = 2, i = 3
Output : 1

Input :m = 3, n = 3, i = 6
Output : 1
 
Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.
1. Change a decimal number into a binary and store it in string s. 2. Run loop n times in each iteration. Run another loop of string length s to convert 0 to “01” and 1 to “10” and store in another string s1. After completion of each iteration, assign string s1 to s. 3. Finally, return the value of the ith index in string s. 
C++
Java
Python3
C#
Javascript
// C++ Program to find ith character in// a binary string.#include <bits/stdc++.h>using namespace std; // Function to store binary Representationvoid binary_conversion(string &s, int m) {  while (m) {    int tmp = m % 2;    s += tmp + '0';    m = m / 2;  }  reverse(s.begin(), s.end());} // Function to find ith characterint find_character(int n, int m, int i) {   string s;   // Function to change decimal to binary  binary_conversion(s, m);   string s1 = "";  for (int x = 0; x < n; x++) {    for (int y = 0; y < s.length(); y++) {      if (s[y] == '1')        s1 += "10";      else        s1 += "01";         }     // Assign s1 string in s string    s = s1;    s1 = "";  }  return s[i] - '0';} // Driver Functionint main() {  int m = 5, n = 2, i = 8;  cout << find_character(n, m, i);  return 0;}
// Java Program to find ith// character in a binary String.import java.io.*;import java.util.Arrays; class GFG{static String s = "";static String ReverseString(String s){    char[] arr = s.toCharArray();    for(int i = 0;            i < arr.length / 2; i++)    {        char temp = arr[i];        arr[i] = arr[arr.length - i -1];        arr[arr.length - i - 1] = temp;    }    return new String(arr);} // Function to store// binary Representationstatic void binary_conversion(int m){    while (m != 0)    {        int tmp = m % 2;        s += Integer.toString(tmp);        m = (int)(m / 2);    }         s = ReverseString(s);} // Function to find// ith characterstatic int find_character(int n,                          int m,                          int i){        // Function to change    // decimal to binary    binary_conversion(m);     String s1 = "";    for (int x = 0; x < n; x++)    {        for (int y = 0;                 y < s.length(); y++)        {            if (s.charAt(y) == '1')            s1 += "10";            else            s1 += "01";            }                 // Assign s1 String        // in s String        s = s1;        s1 = "";    }         return s.charAt(i) - '0';} // Driver Codepublic static void main(String args[]){    int m = 5, n = 2, i = 8;    System.out.print(               find_character(n, m, i));}} // This code is contributed by// Manish Shaw(manishshaw1)
# Python3 Program to find ith character in# a binary string. # Function to store binary Representationdef binary_conversion(s, m):    while(m):        temp = m % 2        s += str(temp)        m = m // 2         return s[::-1] # Function to find ith characterdef find_character(n, m, i):    s = ""  # Function to change decimal to binary    s = binary_conversion(s, m)    s1 = ""     for x in range(n):        for j in range(len(s)):            if s[j] == "1":                s1 += "10"            else:                s1 += "01"     # Assign s1 string in s string            s = s1        s1 = ""    e = ord(s[i])    r = ord('0')     return e-r # Driver codem, n, i = 5, 2, 8 print(find_character(n,m,i)) # This code is contributed by mohit kumar 29
// C# Program to find ith// character in a binary string.using System; class GFG{    static string ReverseString(string s)    {        char[] arr = s.ToCharArray();        Array.Reverse(arr);        return new string(arr);    }         // Function to store    // binary Representation    static void binary_conversion(ref string s,                                  int m)    {        while (m != 0)        {            int tmp = m % 2;            s += tmp.ToString();            m = (int)(m / 2);        }                 s = ReverseString(s);    }         // Function to find    // ith character    static int find_character(int n,                              int m, int i)    {            string s = "";         // Function to change        // decimal to binary        binary_conversion(ref s, m);         string s1 = "";        for (int x = 0; x < n; x++)        {            for (int y = 0; y < s.Length; y++)            {                if (s[y] == '1')                s1 += "10";                else                s1 += "01";                }                         // Assign s1 string            // in s string            s = s1;            s1 = "";        }                 return s[i] - '0';    }     // Driver Code    static void Main()    {        int m = 5, n = 2, i = 8;        Console.Write(find_character(n, m, i));    }} // This code is contributed by// Manish Shaw(manishshaw1)
<script>// Javascript Program to find ith// character in a binary String. let  s = ""; function ReverseString(s){    let arr = s.split("");    for(let i = 0;            i < arr.length / 2; i++)    {        let temp = arr[i];        arr[i] = arr[arr.length - i -1];        arr[arr.length - i - 1] = temp;    }    return arr.join("");} // Function to store// binary Representationfunction binary_conversion(m){    while (m != 0)    {        let tmp = m % 2;        s += tmp.toString();        m = Math.floor(m / 2);    }           s = ReverseString(s);} // Function to find// ith characterfunction find_character(n,m,i){    // Function to change    // decimal to binary    binary_conversion(m);       let s1 = "";    for (let x = 0; x < n; x++)    {        for (let y = 0;                 y < s.length; y++)        {            if (s[y] == '1')                s1 += "10";            else                s1 += "01";            }                   // Assign s1 String        // in s String        s = s1;        s1 = "";    }           return s[i] - '0';} // Driver Codelet m = 5, n = 2, i = 8;document.write(find_character(n, m, i));  // This code is contributed by patel2127</script>
1
 
Time complexity : O(n^2) Auxiliary Space : O(n)
Refer Set-2 for an optimized solution.  
manishshaw1
mohit kumar 29
patel2127
mahendrabagul569
Amazon
binary-string
Strings
Amazon
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Different Methods to Reverse a String in C++
Python program to check if a string is palindrome or not
Check for Balanced Brackets in an expression (well-formedness) using Stack
KMP Algorithm for Pattern Searching
Longest Palindromic Substring | Set 1
Length of the longest substring without repeating characters
Top 50 String Coding Problems for Interviews
Check whether two strings are anagram of each other
Convert string to char array in C++
Reverse words in a given string