Matrice di stringhe palindrome

di Anonimizzato25666 il
3 risposte
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

  • 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.
  • 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
  • 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