Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โค้ด C++ ตรวจสอบกริด 2 แถวเข้าถึงได้หมดหรือไม่

สมมติว่าเรามีกริด 2 แถว n คอลัมน์ หุ่นยนต์อยู่ที่ (0, 0) ต้องไป (1, n-1) โดยเดินไปเซลล์ติดกันและมุม ได้กริดเป็นอาร์เรย์สตริง เซลล์บล็อกถ้า '#' เข้าถึงได้ถ้า '.' ต้องหาว่าหุ่นยนต์ไป (1, n-1) จาก (0, 0) ได้หรือไม่

เช่น ถ้าอินพุตคือ n = 4, grid = {".##.", "...."} เอาต์พุตจะเป็น Possible

ขั้นตอนการแก้ปัญหา

flag := 1
for i := 0 ถึง n-1:
    if grid[0, i] == '#' และ grid[1, i] == '#':
        flag := 0
if flag == 0:
    print("Not Possible.")
otherwise:
    print("Possible.")

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

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.