• + 3 comments

    C# read as string

    static string[] cavityMap(string[] grid)
    {
        for (int i = 1; i < grid.Length - 1; i++)
        {
            for (int j = 1; j < grid[i].Length - 1; j++)
            {
                int middleUpper = (int)char.GetNumericValue(grid[i - 1][j]);
                int left = (int)char.GetNumericValue(grid[i][j - 1]);
                int right = (int)char.GetNumericValue(grid[i][j + 1]);
                int middleUnder = (int)char.GetNumericValue(grid[i + 1][j]);
    
                var adjacent = new int[4]
                {
                            middleUpper,
                    left,                   right,
                            middleUnder
                };
    
                if (adjacent.Any(a => a < 0)) continue;//smaller than 0 if X in adjacent cell
    
    
                int ij = (int)char.GetNumericValue(grid[i][j]);
    
                if (adjacent.All(a => a < ij))//Can use StringBuilder instead(faster?)
                    grid[i] = grid[i].Remove(j, 1).Insert(j, "X");
    
            }
        }
    
        return grid;
    }