gpt4 book ai didi

java - 在二维矩阵中查找特定单词(对角线)

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:50 26 4
gpt4 key购买 nike

“给定一个 2D 字符数组和一个字符串。

查找特定字符串是否出现在矩阵的对角线上。

private static boolean diagonalContains(char[][] grid,String word){
int wordLength = word.length();
char[] wordArray = word.toCharArray();
for(int i =0, length = grid.length; i < length; i++){
loop:for(int j =0, k = i, subLength = grid[i].length;
j < subLength && k >= wordLength; j++, k--){
for(int l =0; l < wordLength; l++){
if(grid[j + l][k - l]!= wordArray[l]){
continue loop;
}
return true;
}
}
}
}

该函数要求我返回值,尽管我这样做了,因此我无法运行代码。我尝试将 return 语句放在代码的不同区域,但似乎没有一个起作用。另外,我想知道代码对于练习的目的是否有效?

最佳答案

基本上有两个问题
1. 每个函数都应该返回一些值,如果返回类型不是void。在您的情况下,仅当满足条件时才指定返回值。否则你应该返回 false。

  private static boolean diagonalContains(char[][] grid,String word){
int wordLength = word.length();
char[] wordArray = word.toCharArray();
for(int i =0, length = grid.length; i < length; i++){
loop:for(int j =0, k = i, subLength = grid[i].length;
j < subLength && k >= wordLength; j++, k--){
for(int l =0; l < wordLength; l++){
if(grid[j + l][k - l]!= wordArray[l]){
continue loop;
}
return true;
}
}
}
return false;
}
  • 代码似乎效率低下,逻辑似乎错误。因此请尝试以下代码。
  •     import java.util.*;    class WordDiagonal{      public static void main(String[] args){        char grid[][] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};        if(checkDiagonalSubstring(grid,"aei")){          System.out.println("Contains..");        }else{          System.out.println("Sorry..!");        }      }      private static boolean checkDiagonalSubstring(char[][] grid, String word){        String diagonalString = "";        Integer i = 0;        for(char[] charArray : grid){          diagonalString += charArray[i++];        }        if(diagonalString.contains(word)){          return true;        }        return false;      }    }

    关于java - 在二维矩阵中查找特定单词(对角线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50666157/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com