<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 檢查二進制矩陣中的水平和垂直對稱性 > 原文: [https://www.geeksforgeeks.org/check-horizontal-vertical-symmetry-binary-matrix/](https://www.geeksforgeeks.org/check-horizontal-vertical-symmetry-binary-matrix/) 給定 **N** 行和 **M** 列的二維二進制矩陣。 任務是檢查矩陣是水平對稱的,垂直對稱的還是兩者都是。 如果第一行與最后一行相同,第二行與第二最后一行相同,則稱矩陣為水平對稱。 如果第一列與最后一列相同,第二列與最后一列相同,則稱矩陣為垂直對稱。 如果矩陣是垂直對稱的,則打印“ VERTICAL”;如果矩陣是垂直對稱的,則打印“ HORIZONTAL”;如果矩陣是垂直和水平對稱的,則打印“ BOTH”;如果不對稱,則打印“ NO”。 **示例**: ``` Input : N = 3 M = 3 0 1 0 0 0 0 0 1 0 Output : Both First and third row are same and also second row is in middle. So Horizontal Symmetric. Similarly, First and third column are same and also second column is in middle, so Vertical Symmetric. Input : 0 0 1 1 1 0 0 0 1. Output : Horizontal ``` 想法是使用指向指示兩行(或列)的指針,并比較兩個指向的行(或列)的每個單元格。 對于水平對稱,初始化一個指針 i = 0,另一個指針 j = N –1。 現在,比較第 i 行和第 j 行的每個元素。 在每個循環周期中,將 i 加 1 并將 j 減 1。 如果找到至少一個不相同的元素,則將矩陣標記為非水平對稱。 同樣,對于“垂直對稱”,初始化一個指針 i = 0,另一個指針 j = M –1。 現在,比較第 i 列和第 j 列的每個元素。 在每個循環周期中,將 i 加 1 并將 j 減 1。 如果找到至少一個不相同的元素,則將矩陣標記為非垂直對稱。 下面是上述想法的實現: ## C++ ```cpp // C++ program to find if a matrix is symmetric. #include <bits/stdc++.h> #define MAX 1000 using namespace std; void checkHV(int arr[][MAX], int N, int M) { ????// Initializing as both horizontal and vertical ????// symmetric. ????bool horizontal = true, vertical = true; ????// Checking for Horizontal Symmetry.? We compare ????// first row with last row, second row with second ????// last row and so on. ????for (int i = 0, k = N - 1; i < N / 2; i++, k--) { ????????// Checking each cell of a column. ????????for (int j = 0; j < M; j++) { ????????????// check if every cell is identical ????????????if (arr[i][j] != arr[k][j]) { ????????????????horizontal = false; ????????????????break; ????????????} ????????} ????} ????// Checking for Vertical Symmetry.? We compare ????// first column with last column, second xolumn ????// with second last column and so on. ????for (int i = 0, k = M - 1; i < M / 2; i++, k--) { ????????// Checking each cell of a row. ????????for (int j = 0; j < N; j++) { ????????????// check if every cell is identical ????????????if (arr[i][j] != arr[k][j]) { ????????????????vertical = false; ????????????????break; ????????????} ????????} ????} ????if (!horizontal && !vertical) ????????cout << "NO\n"; ????else if (horizontal && !vertical) ????????cout << "HORIZONTAL\n"; ????else if (vertical && !horizontal) ????????cout << "VERTICAL\n"; ????else ????????cout << "BOTH\n"; } // Driven Program int main() { ????int mat[MAX][MAX] = { { 1, 0, 1 }, ??????????????????????????{ 0, 0, 0 }, ??????????????????????????{ 1, 0, 1 } }; ????checkHV(mat, 3, 3); ????return 0; } ``` ## Java ```java // Java program to find if // a matrix is symmetric. import java.io.*; public class GFG { ????static void checkHV(int[][] arr, int N, ????????????????????????int M) ????{ ????????// Initializing as both horizontal ????????// and vertical symmetric. ????????boolean horizontal = true; ????????boolean vertical = true; ????????// Checking for Horizontal Symmetry. ????????// We compare first row with last ????????// row, second row with second ????????// last row and so on. ????????for (int i = 0, k = N - 1; ?????????????i < N / 2; i++, k--) { ????????????// Checking each cell of a column. ????????????for (int j = 0; j < M; j++) { ????????????????// check if every cell is identical ????????????????if (arr[i][j] != arr[k][j]) { ????????????????????horizontal = false; ????????????????????break; ????????????????} ????????????} ????????} ????????// Checking for Vertical Symmetry. We compare ????????// first column with last column, second xolumn ????????// with second last column and so on. ????????for (int i = 0, k = M - 1; ?????????????i < M / 2; i++, k--) { ????????????// Checking each cell of a row. ????????????for (int j = 0; j < N; j++) { ????????????????// check if every cell is identical ????????????????if (arr[i][j] != arr[k][j]) { ????????????????????horizontal = false; ????????????????????break; ????????????????} ????????????} ????????} ????????if (!horizontal && !vertical) ????????????System.out.println("NO"); ????????else if (horizontal && !vertical) ????????????System.out.println("HORIZONTAL"); ????????else if (vertical && !horizontal) ????????????System.out.println("VERTICAL"); ????????else ????????????System.out.println("BOTH"); ????} ????// Driver Code ????static public void main(String[] args) ????{ ????????int[][] mat = { { 1, 0, 1 }, ????????????????????????{ 0, 0, 0 }, ????????????????????????{ 1, 0, 1 } }; ????????checkHV(mat, 3, 3); ????} } // This code is contributed by vt_m. ``` ## Python3 ```py # Python3 program to find if a matrix is symmetric. MAX = 1000 def checkHV(arr, N, M): ????# Initializing as both horizontal and vertical ????# symmetric. ????horizontal = True ????vertical = True ????# Checking for Horizontal Symmetry. We compare ????# first row with last row, second row with second ????# last row and so on. ????i = 0 ????k = N - 1 ????while(i < N // 2): ????????# Checking each cell of a column. ????????for j in range(M): ????????????# check if every cell is identical ????????????if (arr[i][j] != arr[k][j]): ????????????????horizontal = False ????????????????break ????????i += 1 ????????k -= 1 ????# Checking for Vertical Symmetry. We compare ????# first column with last column, second xolumn ????# with second last column and so on. ????i = 0 ????k = M - 1 ????while(i < M // 2): ????????# Checking each cell of a row. ????????for j in range(N): ????????????# check if every cell is identical ????????????if (arr[i][j] != arr[k][j]): ????????????????vertical = False ????????????????break ????????i += 1 ????????k -= 1 ????if (not horizontal and not vertical): ????????print("NO") ????elif (horizontal and not vertical): ????????print("HORIZONTAL") ????elif (vertical and not horizontal): ????????print("VERTICAL") ????else: ????????print("BOTH") # Driver code mat = [[1, 0, 1],[ 0, 0, 0],[1, 0, 1]] checkHV(mat, 3, 3) # This code is contributed by shubhamsingh10 ``` ## C# ```cs // C# program to find if // a matrix is symmetric. using System; public class GFG { ????static void checkHV(int[, ] arr, int N, ????????????????????????int M) ????{ ????????// Initializing as both horizontal ????????// and vertical symmetric. ????????bool horizontal = true; ????????bool vertical = true; ????????// Checking for Horizontal Symmetry. ????????// We compare first row with last ????????// row, second row with second ????????// last row and so on. ????????for (int i = 0, k = N - 1; ?????????????i < N / 2; i++, k--) { ????????????// Checking each cell of a column. ????????????for (int j = 0; j < M; j++) { ????????????????// check if every cell is identical ????????????????if (arr[i, j] != arr[k, j]) { ????????????????????horizontal = false; ????????????????????break; ????????????????} ????????????} ????????} ????????// Checking for Vertical Symmetry. We compare ????????// first column with last column, second xolumn ????????// with second last column and so on. ????????for (int i = 0, k = M - 1; ?????????????i < M / 2; i++, k--) { ????????????// Checking each cell of a row. ????????????for (int j = 0; j < N; j++) { ????????????????// check if every cell is identical ????????????????if (arr[i, j] != arr[k, j]) { ????????????????????horizontal = false; ????????????????????break; ????????????????} ????????????} ????????} ????????if (!horizontal && !vertical) ????????????Console.WriteLine("NO"); ????????else if (horizontal && !vertical) ????????????Console.WriteLine("HORIZONTAL"); ????????else if (vertical && !horizontal) ????????????Console.WriteLine("VERTICAL"); ????????else ????????????Console.WriteLine("BOTH"); ????} ????// Driver Code ????static public void Main() ????{ ????????int[, ] mat = { { 1, 0, 1 }, ????????????????????????{ 0, 0, 0 }, ????????????????????????{ 1, 0, 1 } }; ????????checkHV(mat, 3, 3); ????} } // This code is contributed by vt_m. ``` ## PHP ```php <?php // PHP program to find if? // a matrix is symmetric. function checkHV($arr, $N, $M) { ????// Initializing as both horizontal? ????// and vertical symmetric. ????$horizontal = true; $vertical = true; ????// Checking for Horizontal Symmetry.? ????// We compare first row with last row, ????// second row with second last row? ????// and so on. ????for ($i = 0, $k = $N - 1;? ?????????$i < $N / 2; $i++,? ?????????$k--) ????{ ????????// Checking each cell of a column. ????????for ($j = 0; $j < $M; $j++) ????????{ ????????????// check if every cell is identical ????????????if ($arr[$i][$j] != $arr[$k][$j]) ????????????{ ????????????????$horizontal = false; ????????????????break; ????????????} ????????} ????} ????// Checking for Vertical Symmetry.? ????// We compare first column with? ????// last column, second xolumn with? ????// second last column and so on. ????for ($i = 0, $k = $M - 1;? ?????????$i < $M / 2; $i++,? ?????????$k--) ????{ ????????// Checking each cell of a row. ????????for ($j = 0; $j < $N; $j++) ????????{ ????????????// check if every cell is identical ????????????if ($arr[$i][$j] != $arr[$k][$j]) ????????????{ ????????????????$horizontal = false; ????????????????break; ????????????} ????????} ????} ????if (!$horizontal && !$vertical) ????????echo "NO\n"; ????else if ($horizontal && !$vertical) ????????cout << "HORIZONTAL\n"; ????else if ($vertical && !$horizontal) ????????echo "VERTICAL\n"; ????else echo "BOTH\n"; } // Driver Code $mat = array(array (1, 0, 1), ?????????????array (0, 0, 0), ?????????????array (1, 0, 1)); checkHV($mat, 3, 3); // This code is contributed by nitin mittal.? ?> ``` **輸出**: ``` BOTH ``` **時間復雜度**: O(N * M)。 本文由 [**Anuj Chauhan**](https://www.facebook.com/anuj0503) 提供。 如果您喜歡 GeeksforGeeks 并希望做出貢獻,則還可以使用 [tribution.geeksforgeeks.org](http://www.contribute.geeksforgeeks.org) 撰寫文章,或將您的文章郵寄至 tribution@geeksforgeeks.org。 查看您的文章出現在 GeeksforGeeks 主頁上,并幫助其他 Geeks。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看