2014-10-08 20 views
0

我有這個代碼從左到右,從右到左搜索多維數組。如何修改我的代碼以從左到右和從右到左對角地搜索多維數組?

我現在需要做的是從左上角到右下角,從右上角到左下角,從左下角到右上角,從右下角到左上角搜索數組。

在我現有的方法中,需要更改哪些內容才能創建一個新的方法來執行我想要的操作?

  // Left to Right 
      public static String findLeftToRight (char[][]board, String word) { 
       char[] letters = word.toCharArray(); 

       for (int i = 0; i < board.length; i++){ 
        for (int j = 0; j < board[i].length; j++) { 
         boolean found = true; 

         for (int k = 0; k < letters.length; k++) { 
          if ((j+k >= board[i].length) || (letters[k] != board[i][j+k])) { 
           found = false; 
           break; 
          } 
         } 

         if (found) { 
          return "String " + word + " found in row=" + i + " col=" +j; 
         } 
        } 
       } 
       return "String " + word + " not found"; 
      } // end findLeftToRight 

      // Right to Left 
      public static String findRightToLeft (char[][]board, String word) { 
       char[] letters = word.toCharArray(); 

       for (int i = board.length-1; i > -1; i--){ 
        for (int j = board[i].length-1; j > -1; j--) { 
         boolean found = true; 

         for (int k = 0; k < letters.length; k++) { 
          if ((j - k < 0) || (letters[k] != board[i][j-k])) { 
           found = false; 
           break; 
          } 
         } 

         if (found) { 
          return "String " + word + " found in row=" + i + " col=" +j; 
         } 
        } 
       } 
       return "String " + word + " not found"; 
      } // end findLeftToRight 

回答

0

所以我假設你的多維數組是一個立方體意味着行和列具有相同的長度。

從左上角到右下角 比較你想要的板[i] [i];

爲右上方BOT左將是 相同for循環但板比較[長度-1] [I]

用於機器人左到右上將是 與板[I] [長度 - 比較I]

用於向左上方將是 機器人右與板比較[長度-1] [長度-1]

所有的人都在for循環從i到長度