C++ 代码找出网格是否完全可访问


假设我们得到一个有 2 行 n 列的网格。一个机器人位于网格中的位置 (0, 0),它想访问 (1, n - 1),方法是访问与其当前位置相邻和角落的单元格。我们得到了一个字符串数组中的网格,如果一个单元格标记为“#”,则它被阻塞,如果一个单元格标记为“.”,则它可以访问。我们必须找出机器人是否可以从单元格 (0, 0) 访问单元格 (1, n - 1)。

因此,如果输入类似于 n = 4、grid = {".##.", "...."},则输出将为可行。

步骤

要解决此问题,我们将遵循以下步骤 −

flag := 1
for initialize i := 0, when i < n, update (increase i by 1), do:
   if grid[0, i] is same as '#' and grid[1, i] is same as '#',
then:
   flag := 0
if flag is same as 0, then:
   print("Not Possible.")
Otherwise
   print("Possible.")

示例

让我们看看以下实现以便更好地理解 −

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int n, string grid[]) {
   int flag = 1;
   for(int i = 0; i < n; i++){
      if(grid[0].at(i) == '#' && grid[1].at(i) == '#'){
         flag = 0;
      }
   }
   if (flag == 0)
      cout<<"Not Possible.";
   else
      cout<<"Possible.";
}
int main() {
   int n = 4;
   string grid[] = {".##.", "...."};
   solve(n, grid);
   return 0;
}

输入

4, {".##.", "...."}

输出

Possible.

更新日期: 2022-3-29

160 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告