Exercice Corrigé Langage Swift – Partie 4

Avec des exercices corrigés en langage Swift, vous pratiquerez divers concepts du langage Swift. Vous commencerez par des exercices du langage Swift de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 
Utiliser l’éditeur Swift pour résoudre les exercices : (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
 

Exercice 1:

Créez une fonction qui prend une chaîne et renvoie le nombre de voyelles qu’elle contient.
 
Exemple:

countVoyel("WayToLearnX") ➞ 4

countVoyel("Paris") ➞ 2

countVoyel("Jack") ➞ 1

Solution:

import Foundation

func countVoyel(_ str: String) -> Int {
  return str
        .unicodeScalars
        .filter(CharacterSet(charactersIn: "aeiou").contains)
        .count
}
 

Exercice 2:

Créez une fonction pour calculer le déterminant d’une matrice 2 x 2.

[[a, b], 
 [c, d]]

Le déterminant de la matrice ci-dessus est: ad – bc:

Exemple:

det([
  [1, 1],
  [2, 3]
]) ➞ 1

det([
  [6, 4],
  [2, 3]
]) ➞ 10

det([
  [2, 4],
  [4, 2]
]) ➞ -12

Solution:

func det(_ matrix: [[Int]]) -> Int {
	let a = matrix[0][0]
	let b = matrix[0][1]
	let c = matrix[1][0]
	let d = matrix[1][1]
	
	return a * d - b * c
}
 

Exercice 3:

Créez une fonction qui prend un tableau de nombres et renvoie un nouveau tableau, trié par ordre croissant (du plus petit au plus grand).
 
Exemple:

sort([6, 8, 1, 3, 7]) ➞ [1, 3, 6, 7, 8]

sort([-1, 9, 3, -9, -8, 8]) ➞ [-9, -8, -1, 3, 8, 9]

sort([]) ➞ []

Solution:

func sort(_ tab: [Int]?) -> [Int] {
	return tab?.sorted() ?? []
}
 
 

Exercice 4:

Créez une fonction qui prend deux chaînes et renvoie TRUE si la première chaîne se termine par la deuxième chaîne, sinon retournez FALSE.
 
Exemple:

checkEnd("WayToLearnX", "X") ➞ true

checkEnd("Alex", "ox") ➞ false

checkEnd("Hello", "lo") ➞ true

Solution:

func checkEnd(_ str1: String, _ str2: String) -> Bool {
	return str1.hasSuffix(str2)
}
 

Exercice 5:

Un palindrome est un mot qui s’écrit de la même manière après l’inversion de ce dernier. ‘ada’ est un palindrome. Écrivez une méthode qui vérifie si une chaîne est un palindrome.

Exemple:

isPalindrome("NON") ➞ true

isPalindrome("TOTO") ➞ false

isPalindrome("SOS") ➞ true

isPalindrome("SELLES") ➞ true

Solution:

func isPalindrome(_ str: String) -> Bool {
	return String(str.reversed()) == str; 
}
 

Exercice 6:

Créez une fonction qui prend deux chaînes comme arguments et renvoie le nombre de fois où la première chaîne (le caractère unique) est trouvée dans la deuxième chaîne.
 
Exemple:

count("l", "Hello") ➞ 2

count("e", "Welcome to WayToLearnX") ➞ 3

count("X", "WayToLearnX") ➞ 1

Solution:

func count(_ c: String, _ str: String) -> Int {
	return str.filter{String($0) == c}.count
}
 
 

Exercice 7:

Créez une fonction qui ne renvoie que des chaînes avec des caractères uniques.
 
Exemple:

uniqueChar(["xxy", "xyy", "xyz", "yzz", "yyz"]) ➞ ["xyz"]

uniqueChar(["111", "222", "333", "123"]) ➞ ["123"]

uniqueChar(["abb", "bba", "aaa", "bbb"]) ➞ []

Solution:

func uniqueChar(_ arr: [String]) -> [String] {
    var res = [String]()
    var s = Set<Character>()
    
    for words in arr {
        for char in words {
            s.insert(char)
        }
        if s.count == words.count {
            res.append (words)
        }
        s = []
    }
    return res
}
 

Exercice 8:

Créez une fonction qui prend un tableau de nombres compris entre 1 et 10 et renvoie le nombre manquant.
 
Exemple:

NbrNotExist([1, 2, 4, 5, 6, 7, 8, 9, 10]) ➞ 3

NbrNotExist([7, 9, 1, 2, 3, 4, 5, 6, 8]) ➞ 10

NbrNotExist([5, 9, 3, 1, 4, 7, 2, 6, 10]) ➞ 8

Solution:

func NbrNotExist(_ tab: [Int]) -> Int {
	var nbrs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
	for i in tab {
		 nbrs = nbrs.filter {$0 != i} 
	}
	return nbrs.first!
}
 

Exercice 9:

Créez une fonction qui supprime les premier et dernier caractères d’une chaîne.
 
Exemple:

deleteFirstLast("WayToLearnX") ➞ "ayToLearn"

deleteFirstLast("Alex") ➞ "le"

deleteFirstLast("sos") ➞ "o"

Solution:

func deleteFirstLast(_ str: String) -> String {
    var s = str
    if s.count > 2 {
		s.remove(at: s.startIndex)
		s.remove(at: s.index(before: s.endIndex))
    } 
    return s
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *