How to find repeated rows of a matrix in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "strings"
)

// Helper function to convert a row to a string for comparison
func rowToString(row []int) string {
    strValues := make([]string, len(row))
    for i, num := range row {
        strValues[i] = fmt.Sprintf("%d", num)
    }
    return strings.Join(strValues, ",")
}

// Function to find repeated rows in the matrix
func findRepeatedRows(matrix [][]int) {
    rowCount := make(map[string]int)

    for _, row := range matrix {
        pattern := rowToString(row)
        rowCount[pattern]++
    }

    fmt.Println("Repeated Rows:")
    for pattern, count := range rowCount {
        if count > 1 {
            fmt.Printf("Row: [%s] - Repeated %d times\n", pattern, count)
        }
    }
}

func main() {
    matrix := [][]int{
        {1, 2, 3},
        {4, 5, 6},
        {1, 2, 3},
        {7, 8, 9},
        {4, 5, 6},
        {0, 1, 2},
        {4, 5, 6},
    }

    findRepeatedRows(matrix)
}



/*
run:

Repeated Rows:
Row: [1,2,3] - Repeated 2 times
Row: [4,5,6] - Repeated 3 times

*/

 



answered May 24, 2025 by avibootz
...