Dadas las strings con palabras, la tarea es escribir un programa de Python para dividir cada palabra en dos mitades sobre la base de los porcentajes asignados de acuerdo con los valores dados.
Ejemplo:
Entrada: test_str = ‘geeksforgeeks es mejor para todos los geeks y estudiantes de cs’, per_splt = 50
Salida: geeksf orgeeks es lo mejor para todos los estudiantes de geeks y cs
Explicación: cada palabra después de dividirse en un 50 por ciento, se emite el resultado.
Entrada: test_str = ‘geeksforgeeks es mejor para todos los geeks y estudiantes de cs’, per_splt = 70
Salida: geeksforg eeks es mejor para todos los estudiantes de geeks y dcs
Explicación: cada palabra después de dividirse en un 70 por ciento, se genera el resultado.
Método 1: usar split() + len() + slice + join()
En esto, dividimos cada palabra y realizamos una división porcentual de cada palabra usando len() y rebanar. El resultado se une de forma intermedia mediante un bucle.
Python3
# Python3 code to demonstrate working of # Split each word into percent segment in list # Using split() + len() + slice + loop # initializing string test_str = 'geeksforgeeks is best for all geeks and cs students' # printing original string print("The original string is : " + str(test_str)) # initializing percent split per_splt = 50 test_str = test_str.split() res = '' for ele in test_str: prop = int((per_splt/100) * len(ele)) new_str1 = ele[:prop] new_str2 = ele[prop:] res += new_str1 + " " + new_str2 + " " # printing result print("Segmented words : " + str(res))
Producción:
La string original es: geeksforgeeks es mejor para todos los geeks y estudiantes de cs
Palabras segmentadas: geeksforgeeks is best for all geeks and csstudents
Método 2: Usar join()
Similar al método anterior, la diferencia es que se usa join() para concatenar la string resultante.
Python3
# Python3 code to demonstrate working of # Split each word into percent segment in list # Using join() # initializing string test_str = 'geeksforgeeks is best for all geeks and cs students' # printing original string print("The original string is : " + str(test_str)) # initializing percent split per_splt = 50 test_str = test_str.split() # one liner solution using join() res = ' '.join([ele[:int((per_splt/100) * len(ele))] + " " + ele[int((per_splt/100) * len(ele)):] for ele in test_str]) # printing result print("Segmented words : " + str(res))
Producción:
La string original es: geeksforgeeks es mejor para todos los geeks y estudiantes de cs
Palabras segmentadas: geeksforgeeks is best for all geeks and csstudents
La complejidad temporal y espacial de todos los métodos es la misma:
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA