---
name: inverti-stringa
description: Usare quando l'utente deve invertire una stringa (rovesciare l'ordine dei caratteri).
---

# Inverti Stringa

Questa skill inverte una stringa, rovesciando l'ordine dei suoi caratteri. Utile per manipolazione di testo, algoritmi su stringhe, formattazione di output, giochi con le parole.

## Procedura

1. **Invertire una stringa**: Usare `invertiStringa(testo)`
2. **Passare il testo**: Il parametro deve essere una stringa
3. **Gestire il risultato**: Restituisce la stringa invertita

## Regole

- `testo` deve essere una stringa
- Restituisce stringa vuota se il parametro non è una stringa
- Restituisce stringa vuota se il parametro è null o undefined
- Preserva spazi, punteggiatura e caratteri speciali
- Mantiene il case dei caratteri

## Esempi

### Esempio 1: Invertire una parola semplice

```javascript
const invertita = invertiStringa('ciao');
console.log(invertita); // 'oaic'
```

### Esempio 2: Invertire una frase

```javascript
const frase = 'Ciao Mondo!';
const invertita = invertiStringa(frase);
console.log(invertita); // '!odnoM oaiC'
```

### Esempio 3: Invertire un numero come stringa

```javascript
const numero = '12345';
const invertito = invertiStringa(numero);
console.log(invertito); // '54321'
```

### Esempio 4: Verificare se una parola è palindroma

```javascript
function isPalindroma(parola) {
    const pulita = parola.toLowerCase().replace(/\s/g, '');
    return pulita === invertiStringa(pulita);
}
console.log(isPalindroma('Anna')); // true
console.log(isPalindroma('Ciao')); // false
```

### Esempio 5: Invertire stringa vuota

```javascript
const invertita = invertiStringa('');
console.log(invertita); // ''
```

## Dettagli Aggiuntivi

- **Implementazione**: Usa `split('')`, `reverse()`, `join('')`
- **Processo**:
  1. `split('')` divide la stringa in array di caratteri
  2. `reverse()` inverte l'ordine dell'array
  3. `join('')` unisce l'array in una stringa
- **Efficienza**: O(n) - tempo lineare rispetto alla lunghezza della stringa
- **Codifica**: Preserva i caratteri Unicode (emoji, caratteri speciali)
- **Esempi**:
  - invertiStringa('ciao') → 'oaic'
  - invertiStringa('123') → '321'
  - invertiStringa('') → ''
  - invertiStringa('A') → 'A'
