Hemos discutido la conversión del número de columna al nombre de columna de Excel . En esta publicación, se discute el reverso.
Dado un título de columna como aparece en una hoja de Excel, devuelva su número de columna correspondiente.
column column number A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28
Ejemplos:
Input: A Output: 1 A is the first column so the output is 1. Input: AA Output: 27 The columns are in order A, B, ..., Y, Z, AA .. So, there are 26 columns after which AA comes.
Enfoque: El proceso es similar a la conversión de binario a decimal.
Por ejemplo, para convertir AB, la fórmula es 26 * 1 + 2.
Como otro ejemplo,
To convert CDA, 3*26*26 + 4*26 + 1 = 26(3*26 + 4) + 1 = 26(0*26 + 3*26 + 4) + 1
Por lo tanto, es muy similar a convertir binario a decimal manteniendo la base en 26.
Tome la entrada como una string y recorra la string de entrada de izquierda a derecha y calcule el resultado de la siguiente manera:
result = 26*result + s[i] - 'A' + 1
El resultado será la suma de
.
Implementación:
C++
// C++ program to return title to result // of excel sheet. #include <bits/stdc++.h> using namespace std; // Returns result when we pass title. int titleToNumber(string s) { // This process is similar to // binary-to-decimal conversion int result = 0; for (const auto& c : s) { result *= 26; result += c - 'A' + 1; } return result; } // Driver function int main() { cout << titleToNumber("CDA") << endl; return 0; }
Java
// Java program to return title // to result of excel sheet. import java.util.*; import java.lang.*; class GFG { // Returns result when we pass title. static int titleToNumber(String s) { // This process is similar to // binary-to-decimal conversion int result = 0; for (int i = 0; i < s.length(); i++) { result *= 26; result += s.charAt(i) - 'A' + 1; } return result; } // Driver Code public static void main (String[] args) { System.out.print(titleToNumber("CDA")); } } // This code is contributed // by Akanksha Rai(Abby_akku)
Python3
# Python program to return title to result # of excel sheet. # Returns result when we pass title. def titleToNumber(s): # This process is similar to binary-to- # decimal conversion result = 0; for B in range(len(s)): result *= 26; result += ord(s[B]) - ord('A') + 1; return result; # Driver function print(titleToNumber("CDA")); # This code contributed by Rajput-Ji
C#
// C# program to return title // to result of excel sheet. using System; class GFG { // Returns result when we pass title. public static int titleToNumber(string s) { // This process is similar to // binary-to-decimal conversion int result = 0; for (int i = 0; i < s.Length; i++) { result *= 26; result += s[i] - 'A' + 1; } return result; } // Driver Code public static void Main(string[] args) { Console.Write(titleToNumber("CDA")); } } // This code is contributed by Shrikant13
Javascript
<script> // JavaScript program to return title // to result of excel sheet. // Returns result when we pass title function titleToNumber(s) { // This process is similar to // binary-to-decimal conversion let result = 0; for (let i = 0; i < s.length; i++) { result *= 26; result += s[i].charCodeAt(0) - 'A'.charCodeAt(0) + 1; } return result; } // Driver Code document.write(titleToNumber("CDA")); // This code is contributed by avanitrachhadiya2155 </script>
2133
Análisis de Complejidad:
- Complejidad de tiempo: O(n), donde n es la longitud de la string de entrada.
- Complejidad espacial: O(1).
Como no se requiere espacio adicional.
Este artículo es una contribución de Sahil Rajput . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA