Matrice di stringhe palindrome

di il
3 risposte

Matrice di stringhe palindrome

Salve, avrei bisogno di alcuni chiarimenti riguardo questo esercizio:
"Scrivere un metodo che prenda in input un parametro formale matrice M
di dimensioni nxm di puntatori a stringhe, e che restituisca true se esiste
almeno una colonna in M che abbia un egual numero di stringhe palindrome di
una delle righe di M."
Questo e' quello che son riuscito a scrivere fin ora:
#include <iostream>
#include <string.h>
#define n 6
#define m 5

using namespace std;

bool palindroma(char parola[])
{
    int i=0, j=strlen(parola)-1;
    for(i=0; i<j; i++){
        if(parola[i] != parola[j]){
            return false;
        }
        return true;
    }
}

bool stringa(string **M[n][m])
{
    for(int i=0; i<n; i++){
        
}

int main()
{
    return 0;
}
Ho creato una funzione booleana che mi dice se una stringa e' palindroma, pero' non so come far confrontare le stringhe palindrome delle righe con le stringhe palindrome delle colonne. Mi farebbe comodo qualche suggerimento su come procedere.
Grazie mille.

3 Risposte

  • Re: Matrice di stringhe palindrome

    far confrontare le stringhe palindrome delle righe con le stringhe palindrome delle colonne
    Non è richiesto questo.

    Devi "contare" quante stringhe palindrome ci sono in ogni colonna e confrontare questo "numero" con il numero di stringhe palindrome trovate in ogni riga.

    Devi creare un vettore di interi eguale al numero di righe della matrice e devi riempirlo con il numero di stringhe palindrome trovate in ogni riga.
    Ad esempio, se ci sono 4 righe, il vettore sarà di 4 elementi. Nell'elemento [0] del vettore metterai quante stringhe palindrome hai trovato nella riga [0] della matrice (se trovi 2 stringhe palindrome assegnerai 2 all'elemento [0] del vettore di interi).

    Fatto questo, esplorerai tutte le colonne, calcolando il numero di stringhe palindrome trovate e confronterai questo valore con tutti quelli del vettore appena riempito. Se ne trovi uno uguale allora quella colonna e quella riga le visualizzi in quanto è quello che cercavi.
  • Re: Matrice di stringhe palindrome

    oregon ha scritto:


    far confrontare le stringhe palindrome delle righe con le stringhe palindrome delle colonne
    Non è richiesto questo.

    Devi "contare" quante stringhe palindrome ci sono in ogni colonna e confrontare questo "numero" con il numero di stringhe palindrome trovate in ogni riga.

    Devi creare un vettore di interi eguale al numero di righe della matrice e devi riempirlo con il numero di stringhe palindrome trovate in ogni riga.
    Ad esempio, se ci sono 4 righe, il vettore sarà di 4 elementi. Nell'elemento [0] del vettore metterai quante stringhe palindrome hai trovato nella riga [0] della matrice (se trovi 2 stringhe palindrome assegnerai 2 all'elemento [0] del vettore di interi).

    Fatto questo, esplorerai tutte le colonne, calcolando il numero di stringhe palindrome trovate e confronterai questo valore con tutti quelli del vettore appena riempito. Se ne trovi uno uguale allora quella colonna e quella riga le visualizzi in quanto è quello che cercavi.
    Ho capito, grazie mille
    Un'altra cosa, per esempio in questo ciclo for:
    int* v = new int[n];
        
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                if(((palindroma(M[i][j])))==1)
            }
        }
    Come faccio a riempire la prima cella del vettore con il numero delle stringhe palindrome della prima riga della matrice?? Grazie ancora e scusa il disturbo
  • Re: Matrice di stringhe palindrome

    Ciao, Per quanto riguarda l'ultimo codice è semplicissimo in basso ti allego il codice...
    
    #include<pali.ndrome>
    int*** v = new int[n];
        
        for(int j=0; i<n; j++){
            for(int i=0; j<m; i++){
                if(((palindroma(M[i][j])))==1)
    srand (time(NULL))%{a;z};
    short w;
    char Palindromo=A[i][j][w]
            }
        }
    [code\]
Devi accedere o registrarti per scrivere nel forum
3 risposte