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
*/