Fondamenti di Informatica: Python

di il
1 risposte

Fondamenti di Informatica: Python

Salve ragazzi avrei un problema con questo esercizio, simile ad altri che ho fatto ma che non riesco a risolvere.
Allego il testo dell esercizio:
# ESERCIZIO N. 1
# Si scriva una funzione
#    cancellaConUnaX(immagine,n)
# che prenda in input una immagine fatta di nxn caratteri disposti
# su n righe e n colonne e ritorni la stessa immagine in cui le
# diagonali sono riempite con il carattere X e il resto è
# l'immagine originale
# Esempio
#  immagine = "..*..   #  output = "X.*.X
#              .***.   #            .X*X.
#              *****   #            **X**
#              ..*..   #            .X*X.
#              ..*.i"  #            X.*.X"
#  n = 5
# RICORDARSI: l'accapo vale un carattere '\n'
# L'esercizio vale 12 punti al più
#    la soluzione che da sempre il risultato atteso vale almeno 9 punti

def cancellaConUnaX(immagine,n):
    output = ""
#   INSERIRE LA VOSTRA SOLUZIONE
    return output
Ho provato a risolverlo così senza successo:
def cancellaConUnaX(immagine,n):
    output = ""
    L = immagine.split("\n")
    L.remove("")
    for i in range(n):
        for j in range(n-1, -1, -1):
            if i + j == n-1:
                L[i] = L[i].replace(L[i][j], "X")
                L[i] = L[i].replace(L[i][j], "X")
    for k in L:
        output = output + k + "\n"
    return output
Grazie in anticipo a chi risponderà!

1 Risposte

  • Re: Fondamenti di Informatica: Python

    Ciao, secondo me la stai facendo più complicata del dovuto. Prova a notare le proprietà delle caselle della diagonale principale e di quella secondaria: ad esempio, se n=5, avrai:
    Diagonale pricipale: (0, 0), (1, 1), (2, 2), (3, 3), (4, 4)
    Diagonale secondaria: (0, 4), (1, 3), (2, 2), (3, 1), (4, 0)
Devi accedere o registrarti per scrivere nel forum
1 risposte