Skip to content

Commit d475c85

Browse files
authored
Merge pull request #1098 from kontroldev/main
#4 - Swift
2 parents 1e97c73 + 0abe273 commit d475c85

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import Foundation
2+
3+
/*
4+
* EJERCICIO:
5+
* Muestra ejemplos de todas las operaciones que puedes realizar con cadenas de caracteres
6+
* en tu lenguaje. Algunas de esas operaciones podrían ser (busca todas las que puedas):
7+
* - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición, recorrido,
8+
* conversión a mayúsculas y minúsculas, reemplazo, división, unión, interpolación, verificación...
9+
*
10+
* DIFICULTAD EXTRA (opcional):
11+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
12+
* para descubrir si son:
13+
* - Palíndromos
14+
* - Anagramas
15+
* - Isogramas
16+
*/
17+
18+
19+
// Operaciones con cadenas de caracteres
20+
21+
// Acceso a caracteres específicos
22+
let palabra = "Swift"
23+
let primerCaracter = palabra[palabra.startIndex] // Accede al primer caracter ("S")
24+
25+
// Subcadenas
26+
let subcadena = palabra[1..<3] // Crea una subcadena con los caracteres en las posiciones 1 y 2 ("wi")
27+
28+
// Longitud
29+
let longitud = palabra.count // Obtiene la longitud de la cadena (5)
30+
31+
// Concatenación
32+
let otraPalabra = " es genial"
33+
let concatenacion = palabra + otraPalabra // Concatena dos cadenas ("Swift es genial")
34+
35+
// Repetición
36+
let repetida = String(repeating: palabra, count: 2) // Repite la cadena dos veces ("SwiftSwift")
37+
38+
// Recorrido
39+
for caracter in palabra {
40+
print(caracter) // Itera sobre cada caracter e imprime ("S", "w", "i", "f", "t")
41+
}
42+
43+
// Conversión a mayúsculas y minúsculas
44+
let mayusculas = palabra.uppercased() // Convierte a mayúsculas ("SWIFT")
45+
let minusculas = palabra.lowercased() // Convierte a minúsculas ("swift")
46+
47+
// Reemplazo
48+
let reemplazada = palabra.replacingOccurrences(of: "i", with: "o") // Reemplaza "i" con "o" ("Swott")
49+
50+
// División
51+
let palabrasSeparadas = "Hola, mundo".components(separatedBy: ",") // Divide la cadena por coma (["Hola", " mundo"])
52+
53+
// Unión
54+
let palabrasUnidas = palabrasSeparadas.joined(separator: " ") // Une las palabras con un espacio ("Hola mundo")
55+
56+
// Interpolación
57+
let edad = 25
58+
let mensaje = "Tengo \(edad) años" // Crea una cadena interpolada ("Tengo 25 años")
59+
60+
// Verificación
61+
let contieneLetra = palabra.contains("w") // Verifica si la cadena contiene la letra "w" (true)
62+
63+
64+
// Programa para comprobar palíndromos, anagramas e isogramas
65+
66+
func esPalindromo(_ palabra: String) -> Bool {
67+
let palabraInvertida = String(palabra.reversed())
68+
return palabra == palabraInvertida
69+
}
70+
71+
func sonAnagramas(_ palabra1: String, _ palabra2: String) -> Bool {
72+
return palabra1.sorted() == palabra2.sorted()
73+
}
74+
75+
func esIsograma(_ palabra: String) -> Bool {
76+
let caracteresSinRepetir = Set(palabra)
77+
return palabra.count == caracteresSinRepetir.count
78+
}
79+
80+
// Ejemplos de uso
81+
82+
let palabra1 = "oso"
83+
let palabra2 = "oso"
84+
let palabra3 = "amor"
85+
86+
print("Es palíndromo: \(esPalindromo(palabra1))") // true
87+
print("Son anagramas: \(sonAnagramas(palabra1, palabra2))") // true
88+
print("Es isograma: \(esIsograma(palabra3))") // true
89+

0 commit comments

Comments
 (0)