Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Invertir una cadena
#11

(27-01-2021, 22:24)tercoide escribió:  
GAMBAS
  1. (Byte[].FromString(cadena)).Reverse().ToString()




Ahi hay 3 funciones que no sabia ni que existían, aun Gambas nos sorprende cada tanto con su poder

Maravilloso!!  Big Grin Big Grin

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
    ¡Gracias!
#12

Hice este ejemplo, para verificar el código propuesto pero en el caso que intento adaptar Reverse2 no funciona adecuadamente, algo se me escapa.

GAMBAS
  1. ' Gambas class file
  2.  
  3. Public Sub Form_Open()
  4.  
  5.   Dim stx As New String[]
  6.   Dim otx1 As New String[]
  7.   Dim otx2 As New String[]
  8.   Dim m As New Byte[]
  9.  
  10.   For i = 1 To 100
  11.     For j = 0 To 15
  12.       m.Add(Rand(33, 165))
  13.     Next
  14.     s = m.ToString()
  15.     stx.Add(s)
  16.     m.Clear
  17.   Next
  18.  
  19.   otx1 = Reverse1(stx)
  20.   otx2 = Reverse2(stx)
  21.  
  22.   If otx1.Count = stx.Count And otx2.Count = stx.Count Then
  23.     For z = 0 To stx.Max
  24.       Print stx[z]& ":" & otx1[z] & ":" & otx2[z]
  25.  
  26.  
  27.  
  28. Public Sub Reverse2(stx As String[]) As String[]
  29.  
  30.   Dim otx As New String[]
  31.   Dim r As New Byte[]
  32.  
  33.   For Each s In stx
  34.     r.FromString(s)
  35.     r.Reverse()
  36.     otx.Add(r.ToString())
  37.   Next
  38.  
  39.   Return otx
  40.  
  41.  
  42. Public Sub Reverse1(stx As String[]) As String[]
  43.  
  44.   Dim otx As New String[]
  45.  
  46.   For Each s In stx
  47.     otx.Add((Byte[].FromString(s)).Reverse().ToString())
  48.   Next
  49.   Return otx



1 Saludo.
    ¡Gracias!
#13

(28-01-2021, 01:37)tercoide escribió:  Con el tercer método, me arden los ojos ....no es casual que sea el mas lento

Tendré que comprobar más el tiempo que tardan las funciones recursivas con la forma que me has enseñado y recordado.
Comenzaré creando una función de factorial.

Tengo que ver el de Tincho, que me lo perdí. 

Saludos

"El lobo siempre será malo si sólo escuchamos a Caperucita.". El lobo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)