Dado un número decimal m, conviértalo en una string binaria y aplique n iteraciones. En cada iteración, 0 se convierte en «01» y 1 se convierte en «10». Encuentre el carácter de índice (basado en la indexación) en la string después de la iteración n.
Ejemplos:
Input : m = 5, n = 2, i = 3 Output : 1 Input :m = 3, n = 3, i = 6 Output : 1
Recomendado: Resuelva primero en » PRÁCTICA «, antes de pasar a la solución.
1. Cambie un número decimal a binario y guárdelo en strings s.
2. Ejecute el bucle n veces en cada iteración. Ejecute otro bucle de longitud de string s para convertir 0 en «01» y 1 en «10» y guárdelo en otra string s1. Después de completar cada iteración, asigne la string s1 a s.
3. Finalmente, devuelva el valor del i-ésimo índice en la string s.
C++
// C++ Program to find ith character in // a binary string. #include <bits/stdc++.h> using namespace std; // Function to store binary Representation void 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 character int 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 Function int main() { int m = 5, n = 2, i = 8; cout << find_character(n, m, i); return 0; }
Java
// 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 Representation static 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 character static 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 Code public 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
# Python3 Program to find ith character in # a binary string. # Function to store binary Representation def binary_conversion(s, m): while(m): temp = m % 2 s += str(temp) m = m // 2 return s[::-1] # Function to find ith character def 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 code m, n, i = 5, 2, 8 print(find_character(n,m,i)) # This code is contributed by mohit kumar 29
C#
// 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)
Javascript
<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 Representation function 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 character function 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 Code let m = 5, n = 2, i = 8; document.write(find_character(n, m, i)); // This code is contributed by patel2127 </script>
1
Complejidad temporal : O(n^2)
Espacio auxiliar : O(n)
Consulte el Conjunto 2 para obtener una solución optimizada.