4. Matrix Shuffling - 80 т.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace Basic_Stack_Operations
{
class Program
{
public static object Matrix { get; private set; }
static void Main(string[] args)
{
int[] input = Console.ReadLine().Split().Select(int.Parse).ToArray();
string[,] matrix = ReadMatrix(input[0], input[1]);
string text;
while ((text = Console.ReadLine()) != "END")
{
string patern = @"swap (\d+) (\d+) (\d+) (\d+)";
Match element = Regex.Match(text, patern);
if (element.Success)
{
int row1 = int.Parse(element.Groups[1].Value);
int col1 = int.Parse(element.Groups[2].Value);
int row2 = int.Parse(element.Groups[3].Value);
int col2 = int.Parse(element.Groups[4].Value);
if (row1 < matrix.GetLength(0)
&&col1 < matrix.GetLength(1)
&&row2 < matrix.GetLength(0)
&&col2 < matrix.GetLength(1))
{
string newElement = matrix[row1, col1];
matrix[row1, col1] = matrix[row2, col2];
matrix[row2, col2] = newElement;
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
else
{
Console.WriteLine("Invalid input!");
}
}
else
{
Console.WriteLine("Invalid input!");
}
}
static string[,] ReadMatrix(int row, int col)
{
string[,] matrix = new string[row, col];
for (int i = 0; i < matrix.GetLength(0); i++)
{
string[] array = Console.ReadLine().Split(' ',StringSplitOptions.RemoveEmptyEntries).ToArray();
for (int j = 0; j < matrix.GetLength(1); j++)
{
matrix[i, j] = array[j];
}
}
return matrix;
}
}
}
}
патърнът засича отрицателните стойности (\d обхваща само числата в интервала [0 - 9])
Погледнах добре задачата и освен патърна да не засичаа правилно, друго не виждам- не знам какво ще стане ако ти дадат тест например, който ти подават без суап или ти подават суап само с три числа- дали си дебъгнал подобни варианти. И имай предвид и друго- много често така написан патърн с \d вместо с [0-9] дава грешки.