Invertir una cadena - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: Invertir una cadena (/thread-246.html) Páginas:
1
2
|
Invertir una cadena - Shell - 26-01-2021 Buenas!. ¿ No creéis que invertir una cadena es algo que se puede necesitar ?. En Python existe el troceado. No creo que haya o no recuerdo una función concreta para Python que haga eso. Normalmente no sueles ver en Python las funciones de cadenas que recuerdan al basic. Si, el troceado es bastante potente. Aunque al principio puede parecer complejo. Con el troceado se logra invertir la cadena. En Gambas pues es por el estilo, no la encuentro. Hice dos funciones, pero si encontráis un método mejor. Mirando el uso de indices negativos en las funciones de cadena de Gambas (Mid por ejemplo) pues tampoco lo logré. No uso con las funciones de cadenas de Gambas, indices negativos. Ella sola no invierte toda una cadena por lo que parece. Quizás estoy equivocado. Lo hice de esta forma: Código: Public Sub Main() Fijaros en el paréntesis de la segunda función, es la clave. Saludos RE: Invertir una cadena - Shell - 26-01-2021 Usando recursividad. Código: Public Sub InvierteCadenaTres(cadena As String) As String Esa fue difícil. Partiendo de este enlace: Invertir una cadena en Java usando recursividad Añado aquí el código del ejemplo y espero eliminar el anterior. Saludos RE: Invertir una cadena - tercoide - 26-01-2021 repite 10^10 veces y toma el tiempo a ver cual es mas eficiente RE: Invertir una cadena - Shell - 26-01-2021 (26-01-2021, 19:44)tercoide escribió: repite 10^10 veces y toma el tiempo a ver cual es mas eficiente Flaco, me he perdido. Saludos RE: Invertir una cadena - Shell - 26-01-2021 tercoide: Los tiempos no son muy buenos haciendo la operación que comentas. Rozan los 100uS en algunos momentos. Si quieres más rapidez, curiosamente con la recursividad va más rápido. Código: Public Function Potencia(numero As Integer, exponente As Integer) As Long Prueba. Saludos RE: Invertir una cadena - tercoide - 27-01-2021 Me referia a hacer un benchmark como este: Código: ' Gambas module file Tiempo para 10^6 repeticiones: 1,37095072399825 llehS y sabmaG Tiempo para 10^6 repeticiones, metodo 2: 0,692488271000912 llehS y sabmaG RE: Invertir una cadena - Shell - 27-01-2021 (27-01-2021, 05:05)tercoide escribió: Me referia a hacer un benchmark como este Ahora lo entiendo mejor. Si me hubieras hecho una referencia. Por ejemplo, recuerdo tu último benchmark en ejemplos cuando estuviste comentando el tema de que Cairo era más rápido que Paint. Pero eso es otra historia...(así queda con aire de misterio ). Gracias, tomaré como costumbre esta técnica. Saludos RE: Invertir una cadena - tercoide - 27-01-2021 [code] Ahi hay 3 funciones que no sabia ni que existían, aun Gambas nos sorprende cada tanto con su poder RE: Invertir una cadena - Shell - 27-01-2021 (27-01-2021, 22:24)tercoide escribió: Ahi hay 3 funciones que no sabia ni que existían, aun Gambas nos sorprende cada tanto con su poder He añadido algo más al test. ¿ Qué te parece pasar como parámetro una función ?. Y ademas eliminamos repetición de código. Código: Public Sub Main() Cita:Tiempo para 10^6 repeticiones, método: InvierteCadena = 1,188117s Cadena invertida: llehS y sabmaG La salida a gusto del consumidor. Tarda mucho en este caso la recursividad. Y el consumo que tiene de cpu...se puso a 50º la cpu. Saludos RE: Invertir una cadena - tercoide - 28-01-2021 Código: Object.Call Otra funcion que nunca use... Con el tercer metodo, me arden los ojos ....no es casual que sea el mas lento |