Cuando se trata de empresas basadas en productos , necesitan buenos codificadores y uno debe pasar la ronda de codificación competitiva para llegar a las rondas de entrevistas. La codificación competitiva es una de esas plataformas que pondrá a prueba tu capacidad mental y tu velocidad al mismo tiempo.
Who should read this? Any programmer who still hasn't tried python for Competitive Coding MUST give this article a read. This should clear up any doubts one has before shifting to python.No matter how comfortable a programming language may seem to you right now Python is bound to feel even better. Python has a tendency of sticking to people like a bad habit !!
La VELOCIDAD es un factor en el que Python es insuperable. La cantidad de código a escribir disminuye drásticamente en comparación con los lenguajes de programación convencionales como C, C++, JAVA. Otro punto muy importante es que python arma a sus usuarios con una amplia variedad de funcionalidades, paquetes y bibliotecas que actúan como complemento a la capacidad mental del programador.
En última instancia, lo mejor de python es que es muy simple y no necesitamos perder mucho tiempo en asuntos triviales como entrada, salida, etc. Ayuda a cambiar nuestro enfoque al problema en cuestión.
Aquí voy a enumerar algunas de mis características favoritas de Python que estoy seguro lo alentarán a comenzar a probar Python para la codificación competitiva.
1. Independencia
de las variables Python no requiere que declaremos las variables y sus tipos de datos antes de usarlas. Esto también nos brinda la flexibilidad del rango siempre que esté dentro de los límites razonables del hardware, es decir, no hay necesidad de preocuparse por el número entero y el número entero largo. La conversión de tipo se maneja internamente con resultados impecables.
Amazing Fact !! For nested loops in python we can use the same variable name in both inner and outer for-loop variables without fear of inconsistent data or any errors !!
2. Funciones comunes como sorted, min, max, count , etc.
La función min/max nos ayuda a encontrar el elemento mínimo/máximo de una lista. La función Sorted nos permite ordenar una lista y la función de recuento nos ayuda a contar el número de ocurrencias de un elemento en particular en una lista.
Lo mejor es que podemos estar seguros de que las bibliotecas de Python utilizan los mejores algoritmos posibles para cada una de las operaciones anteriores. Por ejemplo, la función ordenada es un algoritmo de clasificación muy especial llamado TIMSORT que tiene una complejidad de tiempo en el peor de los casos de O (n log n), que es lo mejor que puede ofrecer un algoritmo de clasificación.
Referencia: algoritmo de clasificación de Python
Python
# Python code to demonstrate working of min(), # max(), sorted() and count() arr = [10, 76, 87, 45, 22, 87, 90, 87, 66, 84, 87] print("Maximum = ",max(arr)) print("Minimum = ",min(arr)) print("The sorted array is = ",sorted(arr)) print('Number of occurrences of 87 is = ',arr.count(87))
Producción:
('Maximum = ', 90) ('Minimum = ', 10) ('The sorted array is = ', [10, 22, 45, 66, 76, 84, 87, 87, 87, 87, 90]) ('Number of occurrences of 87 is = ', 4)
3. Las listas en python combinan los mejores aspectos de las arrays y las listas vinculadas.
Las listas de Python brindan la funcionalidad única de eliminar elementos específicos mientras se mantienen las ubicaciones de memoria de manera contigua. Esta característica hace que el concepto de listas enlazadas sea nulo e inválido . ¡Es como una lista enlazada de ESTEROIDES! Además, las inserciones se pueden realizar en cualquier ubicación deseada.
Python
# Python code to demonstrate list operations arr = [00, 11, 22, 33, 44, 55, 66, 77, 88, 99] # deletion via index position del arr[5] print(arr) # deletion via specifying particular element arr.remove(22) print(arr) # insertion at any arbitrary position arr[-1] = "A random number" print(arr) # concept of sub-lists k = arr[:2] print(k)
Producción:
[0, 11, 22, 33, 44, 66, 77, 88, 99] [0, 11, 33, 44, 66, 77, 88, 99] [0, 11, 33, 44, 66, 77, 88, 'A random number'] [0, 11]
4. Operaciones de lista únicas: retroceso, sublistas.
En caso de que no estemos seguros del tamaño de la lista, podemos usar la posición de índice de -1 para acceder al último elemento. De manera similar, -2 se puede usar para el penúltimo elemento y así sucesivamente. Por lo tanto, podemos retroceder en una lista. Además, no tenemos que especificar ningún tamaño de lista en particular, por lo que también funciona como una array de asignación dinámica.
Se puede extraer una parte específica de una lista sin tener que atravesar la lista como se ve en el ejemplo anterior. Un hecho muy sorprendente acerca de las listas es que pueden contener diferentes tipos de datos. Atrás quedaron los días en que las listas solían ser una colección homogénea de elementos de datos.
- Las funciones pueden devolver más de un valor.
Por lo general, las funciones en otros lenguajes de programación pueden devolver solo un valor, pero en python , ¡podemos devolver más de un valor! como se ve en el siguiente fragmento de código.
Python
# Python code to demonstrate that a function # can easily return multiple values. def multi_return(*arr): k1 = arr[0] k2 = arr[1] return k1,k2 a,b = multi_return(11,22) print(a,' ',b) a,b = multi_return(55,66,77,88,99) print(a,' ',b)
Producción:
11 22 55 66
5.Un número flexible de argumentos para una función.
Los argumentos a una función pueden pasarse en forma de lista cuyo tamaño puede variar cada vez que necesitemos llamar a la función. En el ejemplo anterior, primero llamamos a la función con 2 argumentos y luego con 5 argumentos.
- Los bucles if else y for son mucho más fáciles de usar.
La declaración if-else de python nos permite buscar un elemento en particular en una lista sin la necesidad de recorrer toda la lista y verificar cada elemento.
Algunos lenguajes de programación tienen un concepto de bucle for each que es ligeramente diferente de un bucle for a. Nos permite recorrer una lista donde la variable de bucle toma los valores de la lista uno por uno. Python incorpora cada concepto de ciclo en el propio ciclo for.
Python
# Python code to demonstrate quick searching arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] # searching made easy if 3 in arr: print("YES") else: print("NO") #foreach loop for i in arr: print(i,end = ' ')
Producción:
YES 1 2 3 4 5 6 7 8 9
- Sangría de código.
Los bloques de código de Python se distinguen en función de su sangría. Esto proporciona una mejor legibilidad del código y nos inculca el buen hábito de sangrar nuestro código. - Concepto de Conjuntos y Diccionarios.
Un conjunto es un tipo de datos de colección desordenada que es iterable, mutable y no tiene elementos duplicados. Es como una lista que no permite elementos duplicados.
Un diccionario es como una lista a cuyos valores se puede acceder mediante claves definidas por el usuario en lugar de valores de índice numérico convencionales.
Python
# Python code to demonstrate use of dictionaries # and sets. a = {'a','b','c','d','e','a'} # the second 'a' is dropped to avoid repetition print(a) dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print("dict['Name']: ", dict['Name']) print("dict['Age']: ", dict['Age'])
Producción:
{'d', 'a', 'e', 'b', 'c'} dict['Name']: Zara dict['Age']: 7
- Declaraciones de entrada robustas.
En la codificación competitiva, a menudo se requiere que tomemos ‘n’ enteros separados por espacios como entrada y, preferiblemente, los guardemos en una lista/array. Python proporciona funcionalidad para hacerlo todo en una sola línea de código.
Python3
# Python code to demonstrate how to take space # separated inputs. arr = [int(a) for a in input().strip().split(' ')] print(arr)
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