Scrivere un programma Java MaxLen che , data una matrice A di caratteri (di
dimensionen×m), determini la lunghezza massima tra le sequenze orizzontali,
verticali e diagonali cheappaiono nella matrice e sono composte di caratteri
tutti uguali.
Il testo completo è qui:
http://www.dimi.uniud.it/~stefano/ProvaJavaLab.pdf
Ora, per contare i caratteri in diagonale senza scrivere duemila cicli, voi
come fareste?
Per esempio,
Trova la lunghezza massima in orizzontale, ed in verticale è speculare a questa, ma in diagonale sorgono una miriade di complicazioni:codice:private void checkHorizontal(){ for (int i=0; i<nRighe; i++){ horLen = 1; for (int j=0; j<nColonne-1; j++){ if (array[i][j]==array[i][j+1]){ horLen++; if (horLen > maxLen) maxLen = horLen; } } } }
tanto per cominciare ci sono due versi da controllare, \ e / , poi se scorro le righe, incrementando di volta in volta gli indici dell'array di 1(uno), per pescare i caratteri uguali, esco fuori dall'array se n° colonne è minore di n° righe, e viceversa scorrendo le colonne.
Voi come fareste?